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

时间:2014-07-24 10:00:20

标签: regex utf-8 xregexp

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

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

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

2 个答案:

答案 0 :(得分:1)

你可以使用负向前瞻:

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

在您的代码中:

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

答案 1 :(得分:1)

我建议对你的表达进行最微小的调整:

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

否定前瞻(?!θ)可确保您匹配的\p{L}不是θ。还在+和中间部分添加了\s量词,这样如果我们连续有几个,我们就可以直接匹配它们,而不会在循环中循环。