此问题已在此处有答案:
JavaScript regex character exclusion(5个答案)
关闭27天前。
我不想再问一个Regex问题,因为在堆栈溢出的世界里有很多问题。然而,我正在努力做到以下几点
匹配可以包含以下字符集的单词或短语:
在
\u00C0-\u1EF3
和
\x20-\xFF
但不是在
\/:<>|?"*´§¤°¸¨'
我尝试了以下几种组合,但都不能完全得到它:
这里有一个尝试:
^([\\u00C0-\\u1EF3]|[\\x20-\\xFF](?=[^\\\/:<>|?"*´§¤°¸¨']))$
下列单词或短语列表应该有效
- 凯什尔克山
- alksdj laksjdflksd laksj22332
- 1234
- $asdf123
- 公司简介
但以下内容不应匹配
- ?"*majslkdfjslk
- ¤°¸¨
我用JavaScript来做这个。
1条答案
按热度按时间v64noz0r1#
(我假设
\/
表示两个字符:反斜杠和正斜杠。)在JavaScript正则表达式中有两种方法可以做到这一点。
使用lookarounds,您可以通过将不需要的字符放在lookaround内的字符类中来避免匹配这些字符:
试试on regex101.com。
[\u00C0-\u1EF3\x20-\xFF](?<![\\/:<>|?"*´§¤°¸¨'])
具有相同的效果,但支持较少。使用the new
v
flag,您可以直接执行集合操作:试试on regex101.com。
请注意,即使
|
已经在字符类中,也必须对它进行转义。请参阅this answer了解更多信息。