将js regex转换为python regex

2024-10-01 17:33:22 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在做一个项目的一部分,如果可能的话,它会用https url来回复http url。在

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

例如,我有一个正则表达式:

https://$1wikimediafoundation.org/

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

^{pr2}$

我的问题是我不知道怎么做(将$转换成{})


此代码不起作用:

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

生成以下错误:

SyntaxError: EOL while scanning string literal

此代码工作正常:

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

但产生错误的输出:

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

Tags: 项目代码httpsorghttp解析器url错误
2条回答

试试这个:

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

添加r"\"将自动转义您正在尝试执行的backslash。在

实际上,它是有效的:

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

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

通过打印,您使用的是__str__,即可读版本。(参见__str____repr__this answer

相关问题 更多 >

    热门问题