我想为除"e"之外的任何字母表制作正则表达式.这就是我想出的 -
/([a-d]|[f-z])+?/i
Run Code Online (Sandbox Code Playgroud)
我究竟做错了什么?
Wik*_*żew 10
您可以使用[a-z]字符类,但使用否定前瞻来限制它,使用分组构造将此模式分组并在模式周围添加锚点: (?!e)(?:...)
/^(?:(?!e)[a-z])+$/i
Run Code Online (Sandbox Code Playgroud)
请参阅正则表达式演示。
这种技术适用于所有支持前瞻的正则表达式。请注意,在 Java 和其他一些语言中,您可以使用字符类减法,但 JS RegExp(也不支持 Python re)不支持它。例如,在 Java 中,您可以使用s.matches("(?i)[a-z&&[^e]]+").
图案详情:
^ - 字符串的开始(?:(?!e)[a-z])+- 1 个或多个字符来自a-z和A-Z范围但e和E$ - 字符串锚点的结尾i - 不区分大小写的修饰符。JS演示:
/^(?:(?!e)[a-z])+$/i
Run Code Online (Sandbox Code Playgroud)
你需要锚点^(字符串的开头)和$(字符串的结尾); 否则你的模式可以部分匹配任何字符串,只要它包含e以外的字母:
/^[a-df-z]+$/i.test("america")
// false
/^[a-df-z]+$/i.test("amrica")
// true
/^[a-df-z]+$/i.test("e")
// false
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1577 次 |
| 最近记录: |