名为捕获的 Python 正则表达式子

标签 python regex

我在这里遗漏了一些非常基本的东西。

我想匹配所有实例,例如 throw 'some string'throw "error here"

p = re.compile(b'throw ["|\'](?P<err>).*["|\']')

这似乎很适合匹配。但是,例如,我想用 throw new Error('some string') 替换 throw 'some string'

我的尝试:

p.sub(rb"throw new Error('\g<err>')", b'throw \'foobar\'')

总是导致:

b"throw new Error('')"

我找到了匹配项,但将 err 替换为空字符串。

最佳答案

这匹配并捕获空字符串,后跟零个或多个未捕获的字符:

(?P<err>).*

您想移动括号内的.*:

(?P<err>.*)

关于名为捕获的 Python 正则表达式子,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30848110/

相关文章:

python - Python中的正则表达式——关于一个具体案例

mysql 正则表达式接受所有国际重音符号,不接受逗号或感叹号

python - 如何在python上获取周数?

python - 编写一个不占用资源的Python脚本

python - 如何在glade-3中显示2D numpy数组?

python - 两个二维列表的逐元素乘积

python - 如何在不打乱原始列表的情况下打乱复制的列表?

javascript - 如何判断 Javascript 替换函数中是否发生了替换?

python - 如何删除正则表达式 python 中的\r\n 字符

javascript - RegExp 用于干净的文件和文件夹名称