繁体   English   中英

Python正则表达式字符串搜索以返回起始索引

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM