gpt4 book ai didi

php 正则表达式 : how to match number + letters + Chinese

转载 作者:行者123 更新时间:2023-12-04 07:13:42 26 4
gpt4 key购买 nike

我正在尝试处理包含字母,数字,中文和一些标点符号的字符串,只剩下数字,字母和中文,如下所示
原始字符串

a>b%%c##1@23测$$试??\\:.##,,??!!
结果
abc123测试
中文版, preg_replace('/\P{Han}+/u', '', $text)完美运行
测试 // result
对于数字和字母, preg_replace('/[^0-9a-zA-Z]/', '', $text)也有效。
abc123 // result
但是我怎样才能把它们结合起来呢?
为什么 preg_replace('/[\P{Han}]|[0-9a-zA-Z]/u', '', $raw);没有按预期工作?
非常感谢任何人的帮助!

最佳答案

你需要

preg_replace('~[^0-9a-zA-Z\p{Han}]+~u', '', $raw)
regex demo . [^0-9a-zA-Z\p{Han}]+是一种否定字符类,匹配除 ASCII 数字、ASCII 字母和任何中文字符之外的任何一个或多个字符。
使用 u 很重要使用此模式标记,因为您的输入是 Unicode 字符串。
PHP demo :
$raw = 'a>b%%c##1@23测$$试??\\:.##,,??!!';
echo preg_replace('~[^0-9a-zA-Z\p{Han}]+~u', '', $raw);
// => abc123测试

关于php 正则表达式 : how to match number + letters + Chinese,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68907713/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com