至少一个数字,最小8个字符长度,带unicode

时间:2015-01-05 13:14:38

标签: c# asp.net regex

我知道之前已经多次询问过正则表达式问题,但我无法按照自己的需要使其正常工作。我需要的是一个正则表达式,至少包含8个字符,包含至少一个数字(数字可以出现在开头,结尾或其他字符之后),并支持Unicode,因此可以使用希伯来语,阿拉伯语等字符。

2 个答案:

答案 0 :(得分:2)

这是基本的正则表达式:

^(?=.*?\d).{8}

^.{8}将匹配任何至少包含8个字符的字符串。 (?=.*?\d)会断言那里有一个数字。

至于Unicode支持,这取决于正则表达式引擎。如果支持Unicode,.应与Unicode字符匹配。如果您想匹配字素,那么您的正则表达式可能会支持\X,您可以使用.代替\d

如果您想允许非拉丁数字,可能需要将\p{N}替换为\d,具体取决于您的正则表达式引擎。

.NET风格的更新:

  • \p{N}已匹配Unicode数字,因此您无需使用\X
  • .不受支持,因此您必须坚持使用(?>\P{M}\p{M}*)或使用{{1}}之类的解决方法。

答案 1 :(得分:0)

  

假设您正在使用C#或Java之类的正则表达式,那么您的意思是   字符是unicode类别的字符"字母"您可以   使用方法:

(?=\p{L}*?\p{Nd})[\p{L}\p{Nd}]{8,}