不为别的,只为做一个连自己都羡慕的人

python匹配字符串中,某个词的位置

这里我用的是终端传值的方式,比如:python xxx.py "i am your friends" "am"

import re
import sys

arr = []
sentence = str(sys.argv[1])
word = str(sys.argv[2])
rr = re.compile(word, re.I)  # 不区分大小写
for match in re.finditer(rr, sentence):
    print(match)
    obj = {"start": match.start() + 1, "end": match.end(), "length": match.end() - match.start()}
    arr.append(obj)
print(arr)

注意:

rr = re.compile(word, re.I)  # 不区分大小写

将匹配词汇转为正则形式的,可以匹配出各种词汇。如果不把词汇转为正则,而是直接匹配,则匹配不到带有特殊字符的字符串的位置。

匹配结果如下所示:

 

 

posted @ 2021-09-29 10:22  升级打怪  阅读(539)  评论(0编辑  收藏  举报