gpt4 book ai didi

php - PHP 正则表达式中的 UTF-8

转载 作者:IT王子 更新时间:2023-10-29 00:19:50 26 4
gpt4 key购买 nike

我需要正则表达式方面的帮助。我的字符串包含 unicode 字符,下面的代码不起作用。

前四个字符必须是数字,然后是逗号,然后是任何字母字符或空格...我已经读到如果我在正则表达式的末尾添加/u 但它对我不起作用...

我的代码适用于非 unicode 字符

$post = '9999,škofja loka';;
echo preg_match('/^[0-9]{4},[\s]*[a-zA-Z]+', $post);

感谢您的回答!

最佳答案

更新后的答案:
现在已经过测试并且可以正常工作

$post = '9999, škofja loka';
echo preg_match('/^\\d{4},[\\s\\p{L}]+$/u', $post);

\\w 将不起作用,因为它不包含所有 unicode 字母并且还包含 [0-9_] 除了字母之外。

激活 unicode 模式的 u 修饰符也很重要。

如果逗号后可以有字母 空格,那么你应该把它们放在同一个字符类中,在你的正则表达式中,逗号后有 0 个或更多空格,然后只有字母。

参见 http://www.regular-expressions.info/php.html获取 php 正则表达式的详细信息

\\p{L}(Unicode字母)解释here

使用字符串结尾边界 $ 也很重要,以确保确实验证了完整的字符串,否则它将仅匹配第一个空格而忽略其余部分。

关于php - PHP 正则表达式中的 UTF-8,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6407983/

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