如何匹配Unicode Nd类别下任意语言对应的数字0与5
正则匹配全语言0、5字符实现方案
依托Unicode标准属性即可实现无需穷举、匹配所有语言中数值为0、5的十进制数字字符的需求:
正确正则写法
场景1:匹配「0后跟5」的两位字符(对应你现有写法的逻辑)
/^\p{Numeric_Value=0}\p{Numeric_Value=5}/u
场景2:匹配单个0或单个5字符
/^[\p{Numeric_Value=0}\p{Numeric_Value=5}]$/u
语法说明
\p{Numeric_Value=xxx}是Unicode标准定义的属性匹配规则,会自动匹配所有Unicode收录、数值等于xxx的十进制数字字符,天然覆盖所有语言的对应数字,无需手动枚举不同语言的字符或Unicode码点- 末尾的
u修饰符必须保留,作用是开启正则的Unicode模式,才能正确识别上述Unicode属性语法 - 该语法支持的运行环境包括:JavaScript ES2018+、Python 3.11+、PCRE2(PHP 7.3+)、Java 9+等主流环境的高版本,无需额外依赖
内容的提问来源于stack exchange,提问作者ghazaleh eslamifard
相关产品推荐
相关产品推荐

