将 js 正则表达式转换为 Python 正则表达式
convert js regex into python regex
>我正在处理一个项目的一部分,如果可能的话,该项目正在用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
字符
- java.net和javascript之间正则表达式的差异
- Grunt匹配正则表达式
- 不同浏览器中的空白字符正则表达式行为
- 正则表达式在字符串中找到base64
- 子字符串/正则表达式以获取字符串中保存的 SRC 值
- 调用正则表达式匹配的函数
- 使用正则表达式评估电子邮件地址时出现性能问题
- Javascript 正则表达式 : ^[^/s/]+[a-z]{1,}[0-9]*[-_]*[^/][
- JavaScript正则表达式文本与RegExp对象
- 正则表达式只允许 x 个整数
- 使用正则表达式将输入格式设置为单字符逗号、单字符逗号等
- python到javascript正则表达式
- python到javascript中的正则表达式
- Python 3.3 itertools映射,长度为5,由正则表达式级别过滤
- 如何在 Python 中解析 Javascript 正则表达式
- 将 js 正则表达式转换为 Python 正则表达式
- Python和Javascript在计算正则表达式方面的差异
- 将Python条件语句转换为JavaScript正则表达式
- Python正则表达式.用另一个嵌套函数匹配js函数体
- 有没有办法获取哪个组是正则表达式中匹配的组.更喜欢Javascript,但Python也可以