1

これを自分で管理しようとしましたが、できませんでした...

私はテキストを持っています:

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

{}文または式全体から単一の単語をリストに取得したい。したがって、リストでは次のようになります。

  • {Łatwe|プロステ}
  • ずかにえ
  • ミエシュカニア
  • {Sprawdź|Wyprobuj juz dziś}
  • znalezienie ...

メソッドを使用split()しますが、たとえば次のようになります。

  • {Sprawdź|ウィプロブジ
  • ジュース
  • ジシュ}

しかし、それは一言であるべきです。で式を壊したくありません{}

何か助けて?:)

4

1 に答える 1

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およびその他のいくつか (および否定された対応するもの) は ASCII 文字のみに一致するため、フラグが必要です。\d\s

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.Uflagは下位互換性のためにまだ存在しますが、指定するのは冗長です。

于 2013-01-12T10:47:38.743 に答える