首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >转义正则表达式字符串

转义正则表达式字符串
EN

Stack Overflow用户
提问于 2008-11-11 17:33:29
回答 2查看 162.5K关注 0票数 286

我想使用来自用户的输入作为正则表达式模式来搜索一些文本。它可以工作,但我如何处理用户将有意义的字符放在正则表达式中的情况?

例如,用户想要搜索单词(s):正则表达式引擎将把(s)作为一个组。我希望它像string "(s)"一样对待它。我可以在用户输入上运行replace,并用\(替换(,用\)替换),但问题是我需要替换每个可能的正则表达式符号。

你知道更好的方法吗?

EN

回答 2

Stack Overflow用户

发布于 2017-02-24 02:06:32

不幸的是,re.escape()不适合替换字符串:

代码语言:javascript
复制
>>> re.sub('a', re.escape('_'), 'aa')
'\\_\\_'

一种解决方案是将替换放在lambda中:

代码语言:javascript
复制
>>> re.sub('a', lambda _: '_', 'aa')
'__'

因为re.sub()将lambda的返回值视为文字字符串。

票数 5
EN

Stack Overflow用户

发布于 2017-09-23 22:41:36

请试一试:

\Q和\E作为锚点

输入一个或条件以匹配一个完整的单词或正则表达式。

参考链接:How to match a whole word that includes special characters in regex

票数 -4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/280435

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档