如何在Regex中添加特殊符号?PHPBB标签扩展正则修改求助
当前你的正则表达式/^[\- a-z0-9]{3,30}$/i仅允许大小写字母、数字、空格和连字符,要支持指定符号或更多符号,可按以下两种方式修改:
方式一:添加指定符号到允许列表
把你需要的符号直接加入正则的字符集合中即可,注意保持连字符在字符集开头(避免被当作范围符)。修改后的正则如下:
/^[\- a-z0-9†▲∆□■∞Ʌℑ⊇≥◊≤⊆ℜ§ᄼᄽᄾ❖]{3,30}$/i
你可以继续把其他需要的符号追加到方括号内。
方式二:允许绝大多数Unicode符号
如果想支持几乎所有符号(除控制字符外),可以使用Unicode属性类来扩展允许范围,同时保留原有的字母、数字、空格和连字符,正则需加上u修饰符开启Unicode支持:
/^[\p{L}\p{N}\p{S}\p{P}\s\-]{3,30}$/u
\p{L}:匹配所有语言的字母\p{N}:匹配所有数字\p{S}:匹配各类符号(包括你列出的特殊符号)\p{P}:匹配标点符号\s:匹配空白字符(空格、制表符等)
修改步骤
找到rh_topic_tags扩展中存储该正则表达式的配置文件(通常是扩展的config.yml、语言文件或设置类文件),将原有正则字符串替换为上面的新表达式即可。
内容的提问来源于stack exchange,提问作者Alan V K
相关产品推荐
相关产品推荐

