[英]Python regular expression string search to return start index
抱歉,如果已经有人问过。 在Python 3x中,有没有一种方法可以在字符串中搜索整个单词并返回其起始索引?
任何帮助将不胜感激。
是的,使用正则表达式和单词边界锚点 :
>>> import re
>>> s = "rebar bar barbed"
>>> regex = re.compile(r"\bbar\b")
>>> for match in regex.finditer(s):
... print(match.group(), match.start(), match.end())
...
bar 6 9
\\b
锚确保仅整个单词可以匹配。 如果要处理非ASCII字,请使用re.UNICODE
编译正则表达式,否则\\b
将无法正常工作,至少在Python 2中不起作用。
如果只希望第一次出现,则可以使用re.finditer和next。
s = "foo bar foobar"
import re
m = next(re.finditer(r"\bfoobar\b",s),"")
if m:
print(m.start())
或@Tim Pietzcker评论使用re.search
:
import re
m = re.search(r"\bfoobar\b",s)
if m:
print(m.start())
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.