我想确定正则表达式是否与其自己的内容完全匹配。我的目标是确定是否可以通过简单的字符串比较替换任意正则表达式。
例如,正则表达式
^abc123$
与字符串“abc123”完全匹配,没有别的,所以我们可以用input == "abc123"
字符串比较替换它。
另一方面,这个正则表达式与自身匹配,但也更多
^a.*3$
匹配:“a3”,“afoo3”,“a。* 3”。这可以不替换为input =="a.*3"
字符串比较。
确定正则表达式是否只匹配单个精确字符串的最佳方法是什么?是否有我可以查找的完整控制字符列表?
答案 0 :(得分:2)
大多数支持正则表达式的编程语言都应该有一个辅助函数来转义字符串中的任何特殊正则字符。只需将该函数应用于字符串,并查看转义版本是否与原始版本相同(不含^...$
)。
Python中的示例:
>>> s = "abc123"
>>> re.escape(s) == s
True
>>> s = "a.*3"
>>> re.escape(s) == s
False