范围是否相反?

时间:2012-03-11 16:15:35

标签: regex

以下正则表达式失败了我;

[Aa][æ-åÆ-Å].*

但这个正则表达式没有失败

[Aa][v-zV-Z].*

只有在使用æ-å时(丹麦语carachters)。我很困惑为什么?

我得到的错误

parsing "[Aa][æ-åÆ-Å].*" - [x-y] range in reverse order.

2 个答案:

答案 0 :(得分:3)

[Z-V]会失败 - 你需要排序的字母。  例如:Æ是U + 00C6,Å是U + 00C5,它们应该颠倒(或者你可以删除-,它们之间没有字母)......

如果可能的话,尝试使用Unicode character properties而不是尝试手动定义范围。例如,\p{L}将匹配所有字母。

答案 1 :(得分:1)

æ是字符代码145,而å是字符代码134,所以你实际上是说给我字符代码145和134之间的字符不起作用,因为下限是大于上限。 ÆÅ也是如此。

这是一个字符代码图表,可帮助您确定需要创建的RegEx:

http://www.asciitable.com/