至少一个数字,至少 8 个字符长度,使用 unicode

本文关键字:unicode 字符 至少 使用 数字 一个 | 更新日期: 2023-09-27 18:36:10

我知道正则表达式问题以前被问过很多次,但我就是无法根据需要工作。我需要的是一个正则表达式,至少有 8 个字符,至少包含一个数字(数字可以出现在开头、结尾或其他字符之后),并支持 Unicode,以便可以使用希伯来语、阿拉伯语等字符。

至少一个数字,至少 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,}