You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

正则表达式无法匹配完整孟加拉语哈希标签的问题求助

解决PHP正则匹配孟加拉语哈希标签的问题

问题原因

你遇到的问题核心在于:

  • 原正则\w+即使添加u修饰符,仅能匹配ASCII字母、数字和下划线,无法识别Unicode非ASCII字符(如孟加拉语)。
  • 尝试的\p{L}+仅匹配Unicode基础字母,但孟加拉语的部分字符由**基础字母(\p{L})+变音标记(\p{M})**组成,单独用\p{L}会在变音标记处截断,无法匹配完整单词;同时哈希标签中的下划线也不在\p{L}的匹配范围内。

解决方案

使用包含Unicode字母、变音标记和下划线的正则表达式,同时保留u修饰符确保UTF-8字符正确解析:

<?php

$hashtag = '#আয়াতুল_কুরসি';

// 匹配#开头,后跟任意Unicode字母、变音标记或下划线的内容
preg_match('/(#[\p{L}\p{M}_]+)/u', $hashtag, $matches);

print_r($matches);

?>

运行结果

Array
(
    [0] => #আয়াতুল_কুরসি
    [1] => #আয়াতুল_কুরসি
)

正则规则说明

  • \p{L}:匹配任意Unicode语言的字母字符
  • \p{M}:匹配Unicode变音标记(如孟加拉语中附加在字母上的声调、符号)
  • _:显式匹配哈希标签中常见的下划线
  • u修饰符:启用PCRE的Unicode模式,保证正则正确处理UTF-8编码的孟加拉语字符

内容的提问来源于stack exchange,提问作者Ian Y.

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.06 15:50:37