>> impo-6ren">
gpt4 book ai didi

python - 拆分字符串多个单词或破折号

转载 作者:太空宇宙 更新时间:2023-11-03 12:48:21 24 4
gpt4 key购买 nike

我正在尝试将一个字符串拆分为多个字符串。我正在使用 re 库,但遇到了问题。假设我的字符串是""Yakima, WA[4660,12051]49826"如果我​​这样做,它会起作用:

>>> import re
>>> x = "Yakima, WA[4660,12051]49826"
>>> re.split('\W+', x)

它会返回

['Yakima', 'WA', '4660', '12051', '49826']

这是我想要的。但我遇到的问题是,如果城市有一个 (-) 或城市中的一个空间,如何能够将城市保持在自己的字符串中。我将处理多个城市,有些有 2 到 3 个工作城市,有些有破折号。我需要保留 3 个数据结构,包括城市和州的组合、坐标和人口。

>>> x = "Winston-Salem, NC[3610,8025]131885"
>>> re.split('\W+', x)
['Winston', 'Salem', 'NC', '3610', '8025', '131885']

>>> x = "West Palm Beach, FL[2672,8005]63305"
>>> re.split('\W+', x)
['West', 'Palm', 'Beach', 'FL', '2672', '8005', '63305']

我想要:

['Winston-Salem', 'NC', '3610', '8025', '131885']
['West Palm Beach', 'FL', '2672', '8005', '63305']

最佳答案

可以通过[^\w\s-]+分割:

>>> x = "Winston-Salem, NC[3610,8025]131885"
>>> re.split('[^\w\s-]+', x)
['Winston-Salem', ' NC', '3610', '8025', '131885']

>>> x = "West Palm Beach, FL[2672,8005]63305"
>>> re.split('[^\w\s-]+', x)
['West Palm Beach', ' FL', '2672', '8005', '63305']

[^\w\s-]+ 基本上意味着不是字母数字(a-zA-Z0-9_),不是空白字符,也不是 -

关于python - 拆分字符串多个单词或破折号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22595115/

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