至少一个数字,至少 8 个字符长度,使用 unicode
本文关键字:unicode 字符 至少 使用 数字 一个 | 更新日期: 2023-09-27 18:36:10
我知道正则表达式问题以前被问过很多次,但我就是无法根据需要工作。我需要的是一个正则表达式,至少有 8 个字符,至少包含一个数字(数字可以出现在开头、结尾或其他字符之后),并支持 Unicode,以便可以使用希伯来语、阿拉伯语等字符。
这是基本的正则表达式:
^(?=.*?'d).{8}
^.{8}
将匹配至少包含 8 个字符的任何字符串。 (?=.*?'d)
会断言那里有一个数字。
至于Unicode支持,这取决于正则表达式引擎。如果支持 Unicode,则.
应与 Unicode 字符匹配。如果你想匹配字素,你的正则表达式风格可能支持 'X
,你可以使用它来代替 .
。
如果要允许非拉丁数字,则可能需要将'd
替换为'p{N}
,具体取决于您的正则表达式引擎。
.NET 风格的更新:
-
'd
已经匹配 Unicode 数字,因此您无需使用'p{N}
- 不支持
'X
,因此您必须坚持使用.
或使用
解决方法,例如
(?>'P{M}'p{M}*)
.假设您使用的是类似 C# 或 Java 的正则表达式风格,您的意思是 使用字符 Unicode 类别"字母"的字符,您可以 用:
(?='p{L}*?'p{Nd})['p{L}'p{Nd}]{8,}