我自己试图管理这个,但我不敢......
我有文字:
{Łatwe| Proste} szukanie mieszkania {Sprawdź|Wypróbujjuzdziś}, znalezienie {wcale |wogóle}
我希望从{}
中的句子或整个表达式中获取单个单词到列表中。所以在列表中它将如下所示:
我使用split()
方法,但它产生了例如:
但它应该是一个字。
我不想在{}
中断开表达式。
有任何帮助吗?:)
答案 0 :(得分:4)
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}']
re.U
标记是必需的,因为默认情况下,\b
,\w
和其他一些标记(\d
,\s
和被拒绝的对应标记匹配ASCII字符。
Python 3.x解决方案:
re.findall(r'{[^}]*}|\b\w+\b', '{Łatwe|Proste} szukanie mieszkania {Sprawdź|Wypróbuj juz dziś}, znalezienie {wcale|w ogóle}')
在Python 3.x中,\b
,\w
,\d
,\s
及其对应方默认会对Unicode字符执行匹配。 re.U
标记still exists for backward compatibility,但指定它是多余的。