私は正規表現を使用するのが初めてで、空白で区切られた2つの単語を含むリストの要素を選択する方法を見つけようとしています。
次のダミーリストがあります:['word <= 0.02'、 'word_one <= 0.04'、 'word two <= 0.01']
要素3のみを一致させたい( 'word two <= 0.01')
\ b \ w +(?= \ s)\ bを使用してみました。これは、スタックオーバーフローから他の関連する質問から少しずつ切り取って見つけました。2番目の単語の後(<=の前)に空白があるため、これが機能しないことはわかっていますが、修正方法を見つけようとして立ち往生しています。
これが私のコードの例です:
example_list = ['word <= 0.02', 'word_one <= 0.04', 'word two <= 0.01']
new_list = []
regex = '\b\w+(?=\s)\b'
for i in example_list:
if re.match(regex, i):
new_list.append(i)
print(new_list)
1つ以上の単語文字、次に1つ以上の空白、次に単語文字で始まる文字列を照合するには、次を使用できます。
import re
example_list = ['word <= 0.02', 'word_one <= 0.04', 'word two <= 0.01']
new_list = []
regex = r'\w+\s+\w+\b'
for i in example_list:
if re.match(regex, i):
new_list.append(i)
print(new_list)
# => ['word two <= 0.01']
Pythonデモを参照してください。
ノートはre.match
既に従ってない、文字列の先頭にマッチを固定しない^
上記の正規表現です。また、通常の文字列リテラルを使用したため、\b
パターンにはバックスペース文字が含まれ、単語の境界パターンは含まれません。
文字列のどこかに単語char +空白+単語charがある文字列に一致する必要がある場合は、に置き換えre.match
てre.search
、を使用することもできますr'\w\s+\w'
。または、本当に単語の境界を確認する必要がある場合は、r'\b\w+\s+\w+\b'
。
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加