0

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

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

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

有没有一种巧妙的方法可以避免这种冗长的正则表达式?我试过/p{L}/p{Z}正则表达式。然而这并没有奏效。

我的网站在 ASP.net

4

1 回答 1

1
  1. /p{L}/p{Z}错了,应该是\p{L}\{Z}

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

  3. 您不需要角色类中的大部分转义

  4. 您不能"在字符类中编写类似的东西,唯一发生的事情是每个字符都被添加到类中。

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

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

我没有在课程结束时检查那些 Unicode 代码点,我现在不需要它们。

有关所有\p{...}项目的说明,请参阅regular-expressions.info 上的 Unicode 正则表达式

于 2012-10-16T10:18:16.520 回答