Python字符串的正则表达式分隔

2024-09-28 01:33:11 发布

您现在位置:Python中文网/ 问答频道 /正文

我自己也没办法。。。在

我有短信:

{Łatwe|Proste} szukanie mieszkania {Sprawdź|Wypróbuj juz dziś}, znalezienie {wcale|w ogóle}

我想从{}中的句子或整个表达式中获取单个单词到列表中。所以在列表中它看起来是这样的:

  • {atwe |普罗斯特}
  • 苏卡尼
  • 米斯卡尼亚
  • {Sprawdź| Wypróbuj juz dzi}
  • 兹纳莱齐尼。。。在

我使用split()方法,但它会产生例如:

  • {Sprawdź|Wypróbuj
  • 朱兹
  • 迪兹}

但应该是一个词。 我不想打断{}中的表达式。在

有什么帮助吗?:)


Tags: 列表表达式短信办法dzijuzznalezieniemieszkania
1条回答
网友
1楼 · 发布于 2024-09-28 01:33:11

Python 2.x解决方案:

>>> re.findall(r'{[^}]*}|\b\w+\b', u'{Łatwe|Proste} szukanie mieszkania {Sprawdź|Wypróbuj juz dziś}, znalezienie {wcale|w ogóle}', re.U)
[u'{\u0141atwe|Proste}', u'szukanie', u'mieszkania', u'{Sprawd\u017a|Wypr\xf3buj juz dzi\u015b}', u'znalezienie', u'{wcale|w og\xf3le}']

^{}标志是必要的,因为默认情况下,^{cd2>}、^{cd3>},以及其他一些(^{cd4>}、^{cd5>}和否定对应项)仅匹配ASCII字符。

Python 3.x解决方案:

^{pr2}$

在Python 3.x中,^{cd2>}、^{cd3>}、^{cd4>}、^{cd5>}以及它们的对应者将在默认情况下对Unicode字符执行匹配。^{cd1>}标志still exists for backward compatibility,但指定是多余的。

相关问题 更多 >

    热门问题