php - 组合正则表达式字符类

标签 php regex

正则表达式模式 /[^[:ascii:]]+/ui 将匹配一个或多个非 ascii 字符。

正则表达式模式 /[\p{L}]+/ui 将匹配 unicode“字母”类中的一个或多个字符。

我无法找到一种方法来匹配 unicode 'letter' 类中的一个或多个字符并且不是 ASCII 字符。

最佳答案

您可以像这样使用否定字符类:

[^\P{L}[:ascii:]]+

RegEx Demo 1

这将匹配 1+ 个非 ASCII 且与 \P{L} 不匹配的字符(\p{L} 的逆)


或者,您可以在非捕获组中使用负前瞻:

(?:(?![[:ascii:]])\p{L})+

RegEx Demo 2

关于php - 组合正则表达式字符类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/72506414/

相关文章:

php - 使用php的mysql结果获取比较

regex - 匹配大于指定十进制数的数字的正则表达式

c# - 作为匹配的一部分返回常量值的正则表达式

javascript - 替换字符串中单词前后出现的特殊字符

javascript - 替换字符串中多次出现的缩写

php - 简单的 mysqli 查询不返回任何内容

php - 如何通过路由直接传递变量

php - Woocommerce - 如何根据支付类型发送自定义电子邮件

php - 解决 PHP 中不安全的随机数生成问题

objective-c - URL 验证(Objective-C)