我有一个正则表达式检查与文件中的某些单词匹配。我已经检查了文件,因此可以肯定地知道这些字符串在其中,但是正则表达式找不到它们。
我尝试了带有和不带有单词边界的原始字符串,以及转义符号。当我不使用单词边界时,字符串会匹配,但是它也会匹配其他不应出现的东西。我认为可能与符号是字符串的开头有关。
line = "Superuser.apk, /sbin/su, /su/bin/su, /su/fake/test"
wordlist = [Superuser.apk','com.topjohnwu.magisk','\/system\/bin\/su','\/system\/xbin\/su','\/sbin\/su','\/system\/su','\/su\/bin\/su']
complist = []
for word in wordlist:
complist.extend([re.compile(r'\b%s\b' % word)])
#complist.extend([re.compile(word)])
for lv in complist:
match = lv.findall(line, re.IGNORECASE)
我希望前3个匹配项,但第4个匹配。 当前,它将仅匹配“ Superuser.apk”
编辑:更多测试表明,如果我的单词列表中包含bin/su
而没有前导正斜杠,则可以找到它。因此,这些符号不匹配。
我需要解决其他匹配的模式,例如://
和/*
时,如何解决此问题以匹配符号。