Python3:
import re k = "X" s = "X测试一Q测试二XQ测试三" print(re.split((r"\b" + k + r"\b"), s))
输出:
['X测试一Q测试二XQ测试三']
预期:
['', '测试一Q测试二XQ测试三']
发布于 2022-05-30 08:05:15
是封信属于\p{Lo}类,X和测之间没有单词边界。
\p{Lo}
X
测
在Python3.x \b模式中,默认情况下,\b单词边界构造是Unicode感知的,因此您可以通过使用选项或内联(?a)标志来关闭此行为:
\b
(?a)
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])。
(?<![a-zA-Z])X(?![a-zA-Z])
(?<![a-zA-Z0-9])X(?![a-zA-Z0-9])
https://stackoverflow.com/questions/72430927
相似问题