2017-09-08 8 views
2

を引用します次のとおりです。Pythonの正規表現の一致は、私は言葉を比較する場合にのみ、単語を一致させようと、文字列は次のように単一引用符である

foo foo #match it's good 
'foo' foo #don't match it's good 
foo 'foo' #match it's not good 
foo 'foo #match it's good 
foo foo' #match it's good 
'foo' 'foo' #match it's good 

また、私は、私はしたくないこの手紙の試合で、すべての単語の文字をしようが、私はを追加した場合すべての正規表現は機能しません...

+1

でこの正規表現を表示するには、( 2)引用符で囲まれていない、(3)引用が不完全である? '' foo foo'と 'foo 'foo'についてはどうでしょうか? – ctwheels

答えて

0

あなたの質問とあなたが提案したマッチ(それ以上のことはありません)に従って、以下の正規表現が機能します。

注:正規表現では、二重引用符も追加しました(一重引用符の上に)。あなたが見るには、二重引用符"

(?:^(['"])(\w+)\1\s+\1\2\1$)|(?:^(\w+)\s+\3$)|(?:^(\w+)\s+(?:['"]\4$|\4['"]$)) 

と一致しない場合は、使用中のこの正規表現はthisリンク


これも動作し、それがわずかに短いだをクリックしてそれらを削除することができます。

(?:^(['"]{0,1})(\w+)\1\s+(?:(?:(['"]{0,1})\2\1)|(?:\1\2(['"]{0,1})))$) 

私が正しく理解していればそれで、あなたは、第1および第2の単語が同一であり、両方が(1)引用符で囲まれているいずれかの場合だけ一致させたい使用する]をクリックしthisリンク

+0

ありがとう、それは私が欲しいものですが、findallやmatchやseachで特定の単語を追加する方法はありますか? 「foo」と「bar」の場合は「bar」と一致するだけですか?再度、感謝します。 – Sabba

+0

私は、個人的に、正規表現の外でチェックを行います。あなたのコードでそれをしてください。それは第2のキャプチャグループです – ctwheels

関連する問題