我真的很纠结于一些正则表达式。我已经看了一个类似的问题,我不知道为什么它不工作!
我试图匹配字符串'ok',当它前面有4个数字((?<=\d{4}\s)ok),但仅当单词'devo'出现在字符串中之前或之后的任何位置时
text_to_search="devo XXXXXXXXXX 9999 ok ferial blabla"
pattern = re.compile(r"(?<=devo)((?<=\d{4}\s)ok)|((?<=\d{4}\s)ok)(?=devo)")
matches = pattern.finditer (text_to_search)
[print (x) for x in matches]
字符串
这不返回任何匹配项...如果我尝试:
text_to_search=" XXXXXXXXXX 9999 ok ferial blabla devo"
型
也不行。
为了清楚起见,上面的两个例子应该匹配,但是如果我举另一个例子,比如:
text_to_search=" XXXXXXXXXX 9999 ok ferial blabla"
型
则这不应产生匹配,因为‘devo’不存在。
提前感谢你的帮助
2条答案
按热度按时间sycxhyv71#
你可以通过先检查
devo
是否在字符串中来简化正则表达式:字符串
5sxhfpxr2#
你没有任何关于“任何地方”之前或之后的部分。试试这个
字符串
但我觉得这里的景观有点过头了。一个简单得多的
型
也许也能成功