2017-08-23 12 views
1

は正しい正規表現見つける正しい正規表現

import re 

line = "The Boeing AH-64 Apache is an American four-blade," 

print(re.findall('(A.+)\s', line)) 

これは私が

['AH-64', 'Apache' , 'American'] 

をしたいしたいされており、これは私が

['AH-64 Apache is an American'] 
を取得しています何です

答えて

1

Aの前に単語境界(\b)を使用して、1つ以上の非ホワイトスペースCE文字の後に、それ(\S+):

import re 
line = "The Boeing AH-64 Apache is an American four-blade," 
print(re.findall(r'\bA\S+', line)) 

*(0回以上の繰り返し)で、単語全体としてAと一致+(1以上の出現を)交換する:r'\bA\S*'。私はあなたが長いシーケンスにもマッチしたいと思っています。

または、ビットをあなたの正規表現\S一致するすべてのシンボルと句読点以来、あなたがかもしれ正確かつ[\w-]+マッチ1以上の文字、数字、_-シンボル

print(re.findall(r'\bA[\w-]+', line)) 

を使用しています。

['AH-64', 'Apache', 'American']の出力を参照してください。

+0

私は\ bと\ wについて知りませんでした。あなたが従っているチートシートをリンクして、もう一度私の友人に感謝してもらえますか? –

+0

私の表現では、(A \ S +)\空白文字を含む空白文字で始まる 'A'で始まるデータの抽出を開始し、空白を見つけた後で抽出を停止します。 元々は、 'A'に続くすべての文字を意味します(A。+)\ s –

+0

@ShubhamDebnath '(A。+)\ s'を使うと、' A'にマッチし、できるだけ多くの1+文字が最後の空白までと空白が必要です。私は詐欺シートを持っていない、私はちょうど多くの言語で正規表現の構文を知っている。基本を学びたい場合は、[こちら](https://regexone.com/)の練習をしてください。次に、http://regular-expressions.infoとhttp://rexegg.comがあります。そこに正規表現についてのすべてを見つけることができます。 –

関連する問題