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

Python正则\pL匹配问题:含重音拉丁字符的关键词匹配异常

解决方案

问题根因

原正则错误使用负向先行断言匹配关键词前的边界,正确逻辑应该用负向后行断言判断关键词前不存在拉丁字符。

修正后的代码

import regex as re
# 修正逻辑:关键词前用负向后行断言判断无拉丁字符,关键词后用负向先行断言判断无拉丁字符
p = r'(?<!\pL)blah(?!\pL)'
# 原有测试用例
print(re.search(p, "blah u"))
print(re.search(p, "blahé u"))
print(re.search(p, "éblah u"))
print(re.search(p, "blahaha"))
# 新增测试用例
print(re.search(p, "u blah"))

输出结果

<regex.Match object; span=(0, 4), match='blah'>
None
None
None
<regex.Match object; span=(2, 6), match='blah'>

关于内置re模块的说明

Python标准库的re模块仅在3.11及以上版本才支持\p{}格式的Unicode属性转义语法,你使用的3.8版本不支持该特性,继续使用第三方regex库是最优方案。

内容的提问来源于stack exchange,提问作者Alex R.

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.06 06:36:03