我使用了一个名为findlist
到文本中返回某些字符串的所有位置的列表,用正则表达式来查找单词边界的功能。但我想忽略的字符(
,只考虑其他的字边界,因此,将在split
但不是在var split
找到split(a)
。有没有办法做到这一点?
import re
def findlist(input, place):
return [m.span() for m in re.finditer(input, place)]
str = '''
var a = 'a b c'
var split = a.split(' ')
'''
instances = findlist(r"\b%s\b" % ('split'), str)
print(instances)
您可以检查是否存在与负(
lookahead尾字边界后(?!\()
:
instances = findlist(r"\b{}\b(?!\()".format('split'), s)
^^^^^^
全词被发现后,(?!\()
将触发,如果有立即(
到发现字的右边,比赛将失败。
import re
def findlist(input_data, place):
return [m.span() for m in re.finditer(input_data, place)]
s = '''
var a = 'a b c'
var split = a.split(' ')
'''
instances = findlist(r"\b{}\b(?!\()".format('split'), s)
print(instances) # => [(21, 26)]