Python findall 正则表达式不起作用

标签 python regex

我正在尝试创建一个正则表达式来查找 Perl 代码中的所有变量。
变量如下所示:$variable_test
所以这是我使用的正则表达式: ^\$\w+$
这给了我Python中的这一行:

match = re.findall(r'^\$\w+$',line)

它可以工作,除非变量被特殊字符包围,例如 ',",\,/ 并且我不明白为什么。所以对于像 /"$ 这样的变量例如 test ,将不会有匹配项。我不明白为什么会发生以及如何解决问题。

感谢您的帮助

最佳答案

正则表达式的第一个字符 '^' 与字符串的开头匹配,正则表达式的最后一个字符 '$' 与字符串的结尾匹配字符串。

因此,您的正则表达式仅匹配由变量名称组成的字符串,而没有其他内容。

将正则表达式更改为 r'\$\w+'

关于Python findall 正则表达式不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50807156/

相关文章:

regex - 处理彩色 bash 提示符

.net - 生成匹配给定正则表达式的随机序列

Python 正则表达式的含义

python - 如何在不使用嵌套 "for"循环的情况下迭代两个列表

python - Scikit-learn Ridge 分类器 : extracting class probabilities

python - 无法使用 Appium/Python 通过 XPATH 找到元素

python - setuptools_scm.version.SetuptoolsOutdatedWarning : your setuptools is too old (<12)

regex - 使用正则表达式的语法高亮编程语言是否可能?

.net - 帮助解析文件行并替换子字符串

python - 在 ipython 笔记本中使用 matplotlib 内联时如何禁用 bbox_inches ='tight'