Regex 如何创建正则表达式以省略Unicode字符'θ';?

Regex 如何创建正则表达式以省略Unicode字符'θ';?,regex,utf-8,xregexp,Regex,Utf 8,Xregexp,我创建了一个正则表达式来支持UTF8字符: XRegExp("^(\\p{L}|[0-9_/-]|\\s)+$"); 现在,我不想支持unicode字符:“θ”(θ)。您可以使用负前瞻: ^(?!.*θ)[\p{L}\s0-9_/-]+$ 在代码中: XRegExp("^(?!.*θ)[\\p{L}\\s0-9_/-]+$"); 我建议对你的表情进行最细微的调整: ^(?:(?!θ)\\p{L}|[0-9_/-]+|\\s+)+$ 负前瞻(?!θ)确保您可能匹配的\p{L}不是θ。还向\

我创建了一个正则表达式来支持UTF8字符:

XRegExp("^(\\p{L}|[0-9_/-]|\\s)+$");

现在,我不想支持unicode字符:“θ”(θ)。

您可以使用负前瞻:

^(?!.*θ)[\p{L}\s0-9_/-]+$
在代码中:

XRegExp("^(?!.*θ)[\\p{L}\\s0-9_/-]+$");

我建议对你的表情进行最细微的调整:

^(?:(?!θ)\\p{L}|[0-9_/-]+|\\s+)+$

负前瞻
(?!θ)
确保您可能匹配的
\p{L}
不是
θ
。还向
\s
和中间部分添加了一个
+
量词,这样,如果一行中有多个,我们就可以直接匹配它们,而无需通过交替循环。

我仍然不明白为什么要添加+量词。\n如果一行中有多个空格,
\s+
可以一次性匹配它们。没有
+
,它们仍然匹配,但引擎匹配一个。。。然后退出
()
块。。。然后在
()
块中再次开始,首先计算
\p{L}
等。速度较慢。正则表达式对你有用吗?我会测试一下,让你知道。有人能回答这个问题吗。如果不可能,我请求管理员关闭此票证。@vermaraj这里的问题不是“票证”;它们是其他人可以找到的有用信息。我们不会根据他们是否有答案来回答问题。最后,不接受答案与问题块完全无关。我不是正则表达式的最佳选择,但作为不了解它的退步,你可以明确地检查θ,如果不是θ,那么使用另一个。