将 js 正则表达式转换为 Python 正则表达式

convert js regex into python regex

本文关键字:正则表达式 Python 转换 js      更新时间:2023-09-26

>我正在处理一个项目的一部分,如果可能的话,该项目正在用https url来填充http url。

问题是,它的正则表达式是为javascript正则表达式解析器编写的,但我在python中使用该正则表达式。为了兼容,我会在解析为有效的 python 正则表达式期间重写正则表达式。

例如,我给出了正则表达式:

https://$1wikimediafoundation.org/

我会像这样的正则表达式:

https://'1wikimediafoundation.org/

我的问题是我不知道该怎么做(将$转换为'(


此代码不起作用:

'https://$1wikimediafoundation.org/'.replace('$', ''')

生成以下错误:

SyntaxError: EOL while scanning string literal

此代码工作正常,没有错误:

'https://$1wikimediafoundation.org/'.replace('$', '''')

但生成错误的输出:

'https://''1wikimediafoundation.org/'

你在这里测试你的正则表达式 https://regex101.com/,然后将其更改为python。此外,要替换匹配的组,您可以在以下行上使用re.sub模块:

re.sub(r"'([^']*)'", r'{'1}', col ) )取代

'Protein_Expectation_Value_Log(e)', 'Protein_Intensity_Log(I)'

{Protein_Expectation_Value_Log(e)}, {Protein_Intensity_Log(I)}

更多你可以参考这里

实际上它有效:

>>> 'https://$1wikimediafoundation.org/'.replace('$', '''')
'https://''1wikimediafoundation.org/'
>>> print 'https://$1wikimediafoundation.org/'.replace('$', '''')
https://'1wikimediafoundation.org/

当你做'https://$1wikimediafoundation.org/'.replace('$', '''')时,它返回字符串的__repr__(~表示(,你可以看到特殊字符。

通过打印它,您正在使用__str__,可读版本。(请参阅__str____repr__的答案(

试试这个:

'https://$1wikimediafoundation.org/'.replace('$', r''')

添加r"'" whill 会自动转义您尝试执行的backslash

请注意,替换模式中的$&应该转换为 'g<0> ,因为 '0 是 python 正则表达式中的'0x00字符