首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Python3中ASCII和Unicode字母之间的字界

Python3中ASCII和Unicode字母之间的字界
EN

Stack Overflow用户
提问于 2022-05-30 07:58:07
回答 1查看 62关注 0票数 1

Python3:

代码语言:javascript
复制
import re
k = "X"
s = "X测试一Q测试二XQ测试三"
print(re.split((r"\b" + k + r"\b"), s))

输出:

代码语言:javascript
复制
['X测试一Q测试二XQ测试三']

预期:

代码语言:javascript
复制
['', '测试一Q测试二XQ测试三']
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-05-30 08:05:15

是封信属于\p{Lo}类,X之间没有单词边界。

在Python3.x \b模式中,默认情况下,\b单词边界构造是Unicode感知的,因此您可以通过使用选项或内联(?a)标志来关闭此行为:

代码语言:javascript
复制
import re
k = "X"
print( re.split(fr"(?a)\b{k}\b", "X测试一Q测试二XQ测试三") )

请参阅regex演示Python演示

如果您需要确保在X前后没有ASCII字母,请使用(?<![a-zA-Z])X(?![a-zA-Z])。或者,包括数字,(?<![a-zA-Z0-9])X(?![a-zA-Z0-9])

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/72430927

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档