我需要一个能够在所有语言中匹配的正则表达式,如日语,韩语,西班牙语,法语,意大利语等。
表达式是我试图复制的是:
^[a-zA-Z0-9][.a-zA-Z0-9_-]*$
答案 0 :(得分:0)
假设您正在使用PCRE(Perl / PHP / Python),请改为:
^[\p{L}\p{N}][\p{L}\p{N}._-]*$
或者:
^[\p{L}\p{Nd}][\p{L}\p{Nd}._-]*$
这将匹配任何UTF-8字符串中的任何字母或数字。
现在,.
,_
和-
变得有点棘手!您可以按\p{P}
匹配任何标点符号,但这将包含超过列出的三个字符。这些Unicode转义序列解释为here和here。
正如@Amadan所提到的,这可以在Ruby中使用Oniguruma library,也可以在POSIX正则表达式引擎中使用:
/[[:alpha:][:digit:]][[:alpha:][:digit:]._-]*/
POSIX正则表达式使用bracket expressions而不是\
转义序列。