regex - 使用正则表达式无法逃脱反斜杠?

标签 regex

我正在使用以下正则表达式

^[a-zA-Z0-9\',!;\?\$\^:\\\/`\|~&\" @#%\*\{}\(\)_\+\.\s=-]{1,1000}$

我知道它很丑陋,但是到目前为止,它已经达到了它的目的,除了我认为应该禁止反斜杠,因为它已经被转义了,我也尝试了\\而不是\\\,但是结果相同。有任何想法吗?

最佳答案

如果将其放在程序中的字符串中,则实际上可能需要使用四个反斜杠(因为在将字符串“转义”时,字符串解析器会删除其中的两个,而正则表达式需要两个反斜杠)。转义的正则表达式反斜杠)。

例如:

regex("\\\\")

被解释为...
regex("\\" [escaped backslash] followed by "\\" [escaped backslash])

被解释为...
regex(\\)

被解释为与单个反斜杠匹配的正则表达式。

根据语言的不同,您可能可以使用不解析转义序列的另一种形式的引号,以避免不得不使用多个引号-例如,在Python中:
re.compile(r'\\')

引号前面的r使其成为未解析反斜杠转义符的原始字符串。

关于regex - 使用正则表达式无法逃脱反斜杠?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63714908/

相关文章:

javascript - 使用\B 实现正则表达式,以处理与包含字母的表情符号不匹配的表情符号

javascript - 如何在javascript中使用正则表达式匹配段落?

regex - vim 在替换命令中重复一个模式

python - 使用 Python 正则表达式验证日期格式

java正则表达式将一个属性列表从一个sql查询拆分成一个字符串[] of attrs

python - 如何使用 python re 匹配仅包含几个特定字符的字符串?

php - 我怎样才能将这个字符串转换为数组?

regex - 将键和值从 Perl 正则表达式传递到哈希

java - 正则表达式 - 链接不允许双问号 Java

javascript - 如何在html模板中的数字中插入逗号?