gpt4 book ai didi

python - 在 python 字符串中拆分字母和数字字符的快速方法

转载 作者:太空狗 更新时间:2023-10-29 17:24:18 24 4
gpt4 key购买 nike

我正在尝试制定一个简单的函数来捕获拼写错误,例如:

"Westminister15"
"Westminister15London"
"23Westminister15London"

固定后:

["Westminister", "15"]
["Westminister", "15", "London"]
["23", "Westminister", "15", "London"]

第一次尝试:

 def fixate(query):
digit_pattern = re.compile(r'\D')
alpha_pattern = re.compile(r'\d')
digits = filter(None, digit_pattern.split(query))
alphas = filter(None, alpha_pattern.split(query))
print digits
print alphas

结果:

 fixate("Westminister15London")

> ['15']
> ['Westminister', 'London']

但是,我认为这可以更有效地完成,但当我尝试类似的操作时,我仍然得到不好的结果:

 fixate("Westminister15London England")

> ['15']
> ['Westminister', 'London England']

显然它应该分别征用 LondonEngland,但我觉得我的函数会被过度修补,并且有一个更简单的方法

这个问题有点等同于this php问题

最佳答案

问题是 Python 的 re.split() 不会在零长度匹配时拆分。但是您可以使用 re.findall() 获得所需的结果:

>>> re.findall(r"[^\W\d_]+|\d+", "23Westminister15London")
['23', 'Westminister', '15', 'London']
>>> re.findall(r"[^\W\d_]+|\d+", "Westminister15London England")
['Westminister', '15', 'London', 'England']

\d+ 匹配任意数量的数字,[^\W\d_]+ 匹配任意单词。

关于python - 在 python 字符串中拆分字母和数字字符的快速方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12409894/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com