我正在尝试创建一个正则表达式来查找perl代码中的所有变量。
变量看起来像:$variable_test
。
所以这是我使用的正则表达式:^\$\w+$
这给了我Python中的这一行:
match = re.findall(r'^\$\w+$',line)
它有效,除非变量被特殊字符包围,例如',",\,/
,我不明白为什么。因此,对于像/"$test
之类的变量,将没有匹配项。我无法弄清楚它为什么会发生以及如何解决问题。
感谢您的帮助
答案 0 :(得分:1)
正则表达式的第一个字符'^'
与字符串的开头匹配,正则表达式的最后一个字符'$'
与字符串的结尾匹配。
因此,你的regexp只匹配由变量名组成的字符串,而不是其他任何内容。
将正则表达式更改为r'\$\w+'
。