2

2 つの区切り記号と正規表現を使用して文字列を分割しようとしています。私の文字列は、例えば

「テスト 10 20 ミドル 30 - 40 mm」。

["test 10", "20 middle 30", "40 mm"] に分割したいと思います。したがって、「 - 」と 2 桁の間のスペースを分割して削除します。やってみました

result = re.split(r'[\d+] [\d+]', s)
> ['test 1', '0 middle 30 - 40 mm']

result2 = re.split(r' - |{\d+} {\d+}', s)
> ['test 10 20 middle 30', '40 mm']

['test 10', '20 middle 30', '40 mm'] で分割する正規表現はありますか?

4

2 に答える 2

2

あなたは使用することができます

(?<=\d)\s+(?:-\s+)?(?=\d)

正規表現のデモを参照してください。

詳細

  • (?<=\d)- 数字はすぐ左側に表示される必要があります
  • \s+- 1 つ以上の空白
  • (?:-\s+)?-- 1 つ以上の空白が続くa のオプションのシーケンス
  • (?=\d)- 数字はすぐ右側に表示される必要があります。

Python のデモを参照してください。

import re
text = "test 10 20 middle 30 - 40 mm"
print( re.split(r'(?<=\d)\s+(?:-\s+)?(?=\d)', text) )
# => ['test 10', '20 middle 30', '40 mm']
于 2020-04-09T10:57:43.587 に答える