[英]python regex end or beginning of a sentence
I have code as below. 我有如下代码。 I want to find cases where word "eve" is present
我想查找单词“ eve”存在的情况
My conditions are 我的条件是
there shouldn't be any numbers or alphabets after or before "eve" 在“夏娃”之后或之前不应有任何数字或字母
before 'eve' there could be a space or nothing 在“夏娃”之前,可能有空间或一无所有
after 'eve' there could be symbols or nothing 在“前夕”之后,可能没有符号或什么也没有
below code finds ['eve?', 'eve ']
but fails to find the last eve
. 下面的代码找到
['eve?', 'eve ']
但是找不到最后一个eve
。 How should I change the code 我应该如何更改代码
import re
your_string = "eve? is a rule, but not evening and not never. eve eve"
re.findall(r'\beve[^a-zA-Z\d:]', your_string)
I tried below code where i am trying to code that after 'eve' there could be either \\b
or [^a-zA-Z\\d:]
but it didnt work 我在下面的代码中尝试过尝试在“ eve”之后进行编码,可能是
\\b
或[^a-zA-Z\\d:]
但是它没有用
import re
your_string = "eve? is a rule, but not evening and not never. eve eve"
re.findall(r'\beve(\b|[^a-zA-Z\d:])', your_string)
Use word boundary on each side: 在每一面使用单词边界:
import re
your_string = "eve? is a rule, but not evening and not never. eve eve"
print re.findall(r'\beve\b', your_string)
Output: 输出:
['eve', 'eve', 'eve']
Conditions are redundant, but may be translared into regex, and can be used together,: 条件是多余的,但可以翻译成正则表达式,并且可以一起使用:
(?<![a-zA-Z\\d])
before and (?![a-zA-Z\\d])
after (?<![a-zA-Z\\d])
之前添加(?![a-zA-Z\\d])
(?:^|(?<=\\s))
before (?:^|(?<=\\s))
(?:$|(?=[^a-zA-Z\\d]))
after (?:$|(?=[^a-zA-Z\\d]))
之后 updated with code 用代码更新
import re
your_string = "eve? is a rule, but not evening and not never. eve eve"
re.findall(r'(?<![a-zA-Z\d])(?:^|(?<=\s))eve(?![a-zA-Z\d])(?:$|(?=[^a-zA-Z\d]))', your_string)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.