我想支持德语,法语和我网站特定领域的西班牙语字符。我需要一个正则表达式。目前我正在使用 -
^[\w\s-\+\$\*\.\?\:\;\!\,"'\%\&\/\(\)\@\#«»£°¿¡_ÀÂÆÇÈÉÊËÎÏÔŒÙÛÜàâæçèéêëîïôœùûüÄÖäößÁÍÑÓÚáíñóú\u201E\u201C\u201D\u20AC]{1,255}$
这个正则表达式基本上使用了我提到的3种语言中的所有字符集。
有没有一种简洁的方法来避免这种冗长的正则表达式?我试过/p{L}/p{Z}
正则表达式。然而,这没有用。
我的网站位于ASP.net
答案 0 :(得分:1)
/p{L}/p{Z}
错误,应为\p{L}\{Z}
。
所有的字母,如“ÀÂÆÇÈ”都不需要,它们都包含在\ w in .net中!
您不需要在字符类中进行大部分转义
你不能在字符类中写出"
之类的内容,只会发生的事情是每个字符都被添加到类中。
这应该与您使用的非常相似:
^[-\p{L}\p{N}\p{P}\p{Z}_+$*%&/@#«»£°\u201E\u201C\u201D\u20AC]{1,255}$
我没有在课程结束时检查那些Unicode代码点,如果需要或不需要,我现在不会。
有关所有\p{...}
项的说明,请参阅Unicode Regular Expressions on regular-expressions.info