Python findall正则表达式不起作用

Python findall正则表达式不起作用,python,regex,Python,Regex,我试图创建一个正则表达式来查找perl代码中的所有变量 变量如下所示:$variable\u test 下面是我使用的正则表达式:^\$\w+$ 这就给了我Python中的这行代码: match=re.findall(r'^\$\w+$,第行) 它可以工作,除非变量被特殊字符包围,例如,“,\,/,我不明白为什么。因此,对于像/“$test这样的变量,就没有匹配项。我不明白为什么会发生这种情况以及如何解决这个问题。 感谢您的帮助正则表达式的第一个字符'^'与字符串开头匹配,而正则表达式的最后一

我试图创建一个正则表达式来查找perl代码中的所有变量
变量如下所示:
$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
或任何其他表达式或语句,除了引用变量且不处理它的无用表达式之外。的确!谢谢你,这太棒了!