Python findall正则表达式不起作用
我试图创建一个正则表达式来查找perl代码中的所有变量Python findall正则表达式不起作用,python,regex,Python,Regex,我试图创建一个正则表达式来查找perl代码中的所有变量 变量如下所示:$variable\u test 下面是我使用的正则表达式:^\$\w+$ 这就给了我Python中的这行代码: match=re.findall(r'^\$\w+$,第行) 它可以工作,除非变量被特殊字符包围,例如,“,\,/,我不明白为什么。因此,对于像/“$test这样的变量,就没有匹配项。我不明白为什么会发生这种情况以及如何解决这个问题。 感谢您的帮助正则表达式的第一个字符'^'与字符串开头匹配,而正则表达式的最后一
变量如下所示:
$variable\u test
下面是我使用的正则表达式:
^\$\w+$
这就给了我Python中的这行代码:
match=re.findall(r'^\$\w+$,第行)
它可以工作,除非变量被特殊字符包围,例如,“,\,/
,我不明白为什么。因此,对于像/“$test
这样的变量,就没有匹配项。我不明白为什么会发生这种情况以及如何解决这个问题。
感谢您的帮助正则表达式的第一个字符
'^'
与字符串开头匹配,而正则表达式的最后一个字符'$'
与字符串结尾匹配
所以,您的regexp只匹配由变量名组成的字符串,而不匹配其他内容
将regexp更改为
r'\$\w+'
它可能会变得更复杂一些,顺便说一句,为什么r'^\$\w+$'
而不是r'\B\$\w+\B'
?您的正则表达式要求的是一行中除了$variable\u test
之外什么都没有。因此,它不会匹配/“$test
,但它也不会匹配$test+2
或$test | | |$other_test
或任何其他表达式或语句,除了引用变量且不处理它的无用表达式之外。的确!谢谢你,这太棒了!