正则表达式在文本编辑器(崇高)中工作,但在 python 中不工作 [重复]
Posted
技术标签:
【中文标题】正则表达式在文本编辑器(崇高)中工作,但在 python 中不工作 [重复]【英文标题】:Regex working in text editor(sublime) but not in python [duplicate] 【发布时间】:2020-08-05 23:58:20 【问题描述】:我想使用正则表达式提取该行。 我想从文档中提取的行是:
":method":"POST",":path":"/api/browser/projects/8bd4d1d3-0b69-515e-8e15-e9c49992f7d5/buckets/b-ao-mock-testing/copy
我使用的正则表达式是:
":method"[:"a-z,/\d-]20,1000/copy
python中相同的代码是:
re.findall('":method"[:"a-z,/\d-]20,1000/copy', str(s), re.MULTILINE)
它在崇高的文本中工作得非常好,但在 python 中却不行。它在 python 中返回一个空列表。如何解决?
【问题讨论】:
默认情况下,Sublime 文本中的正则表达式搜索不区分大小写。您需要打开Aa
按钮以使其区分大小写。在 Python 中,您只是使用了不同的正则表达式,没有 re.I
。使用re.I
。
【参考方案1】:
您需要使用i modifier: insensitive. Case insensitive match (ignores case of [a-zA-Z])
。
如果没有这个,POST
将如何匹配?
或使用":method"[:"a-zA-Z,/\d-]20,1000/copy
See demo
【讨论】:
为什么投反对票?以上是关于正则表达式在文本编辑器(崇高)中工作,但在 python 中不工作 [重复]的主要内容,如果未能解决你的问题,请参考以下文章
正则表达式搜索 - 在测试人员中工作,而不是在Spyder中[重复]
复杂的正则表达式 - 在Powershell中工作,而不是在Bash中工作
Robotframework - 在python中工作的正则表达式不匹配