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

时间:2014-09-14 20:57:57

标签: javascript python regex

我正在处理一个项目的一部分,如果可能的话,它会使用https url来补充http url&#39。

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

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

https://$1wikimediafoundation.org/

我会这样说一个正则表达式:

https://\1wikimediafoundation.org/

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


此代码无效:

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

生成以下错误:

SyntaxError: EOL while scanning string literal

此代码无误地运行:

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

但生成错误的输出:

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

3 个答案:

答案 0 :(得分:1)

实际上它有效:

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

当您执行'https://$1wikimediafoundation.org/'.replace('$', '\\')时,它会返回字符串的__repr__(〜表示),您可以看到特殊字符。

通过打印,您使用的是__str__,可读版本。 (请参阅__str__ vs __repr__上的this answer

答案 1 :(得分:1)

试试这个:

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

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

答案 2 :(得分:0)

您在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)}

更多内容,您可以参考here

相关问题