【发布时间】:2022-01-27 07:52:10
【问题描述】:
我必须写一些正则表达式。而且我知道很多变种在哪里。但是我发现了我不明白的东西,所以我想问一下。
我有这个正则表达式:
/^[\p{Letter} \-'`’–]+$/u
它必须允许拉丁文和诸如 Ü、Æ 等符号。
它有错误 - 它还允许使用乌克兰(西里尔文)符号“іЇ”。 所以我想添加规则“排除西里尔字母”。但我不知道该怎么做。
我试过/^[\p{Letter} \-'`’–][^\p{sc=Cyrillic}]+$/u;,但最后一部分 [^] 表示除西里尔字母以外的所有字母 ((
请不要说我重写正则表达式。我只是想学习如何编写“排除”规则。
谢谢)
【问题讨论】:
-
我不确定,但我认为你不能一次性完成(“匹配所有字母但西里尔字母”);您是否可以将支票分成两个单独的步骤(首先匹配所有字母,然后从结果匹配中排除西里尔字母)?
-
@secan 是的,我可以。但也许这里有这种可能性)谁知道
-
Character Class Subtraction 不是正则表达式的通用特性。
-
@ceving [\p{IsThai}-[^\p{Nd}]] 我在 ']]' 中有错误 'Dangling metacharacter' 你知道吗?
-
@illia_6655321 你读过链接的文字吗?不要这么认为:XML Schema、XPath、.NET(2.0 版及更高版本)和 JGsoft 正则表达式支持字符类减法。这是否意味着 JavaScript 支持它?
标签: javascript regex web unicode