ASP.net中的正则表达式问题,适用于德语,法语和英语西班牙语

时间:2012-10-16 09:36:13

标签: asp.net regex

我想支持德语,法语和我网站特定领域的西班牙语字符。我需要一个正则表达式。目前我正在使用 -

^[\w\s-\+\$\*\.\?\:\;\!\,"'\%\&\/\(\)\@\#«»£°¿¡_ÀÂÆÇÈÉÊËÎÏÔŒÙÛÜàâæçèéêëîïôœùûüÄÖäößÁÍÑÓÚáíñóú\u201E\u201C\u201D\u20AC]{1,255}$

这个正则表达式基本上使用了我提到的3种语言中的所有字符集。

有没有一种简洁的方法来避免这种冗长的正则表达式?我试过/p{L}/p{Z}正则表达式。然而,这没有用。

我的网站位于ASP.net

1 个答案:

答案 0 :(得分:1)

  1. /p{L}/p{Z}错误,应为\p{L}\{Z}

  2. 所有的字母,如“ÀÂÆÇÈ”都不需要,它们都包含在\ w in .net中!

  3. 您不需要在字符类中进行大部分转义

  4. 你不能在字符类中写出"之类的内容,只会发生的事情是每个字符都被添加到类中。

  5. 这应该与您使用的非常相似:

    ^[-\p{L}\p{N}\p{P}\p{Z}_+$*%&/@#«»£°\u201E\u201C\u201D\u20AC]{1,255}$
    

    我没有在课程结束时检查那些Unicode代码点,如果需要或不需要,我现在不会。

    有关所有\p{...}项的说明,请参阅Unicode Regular Expressions on regular-expressions.info