2016-06-29 2 views
-2

次の正規表現を使用して正規表現を使用すると、論理的に正規表現は接頭辞foo:と一致し、末尾にの末尾には何も入力されません。はスペースではありません。マッチグループはプレフィックス除外部分になりますfooPython 2.7の正規表現の一致問題

私の質問は、正確にはの何かをPython 2.7で使用していますか?任意のASCIIまたは?誰かが何らかの文書を共有することができれば、それは素晴らしいことです。ありがとう。

a = re.compile('foo:([^ ]+)') 

事前のおかげで、 林

+1

あなたが書いたことを正確に意味します:**何でも**それは**スペースではありません**。 – Maroun

+0

@MarounMaroun、答えて投票してくれてありがとう。私の質問は実際に**何か**ここにあります。** Python 2.7の** Anything **の文字表はありますか? –

答えて

1

任意の文字に一致する正規表現のメタキャラクタは、.(ドット)です。

a = re.compile('foo:(.+)') 

文字クラス[^ ]は、角括弧の間の文字(この例では、リテラルスペース)のいずれでもない任意の1つの文字にマッチします。量限定子+は、前の式の1つ以上の繰り返しを指定します。

+0

ありがとうトリプルリー、投票アップ。私が投稿した正規表現は、スペースではないものと一致します。私の質問は、**何か**を意味するものについてです。 **何か**は、Python 2.7の 'str'などで表現されている限り、任意の文字、UTF-8、Unicode、スペース、印刷不可能な文字である可能性があります。 **何かを意味するものは何ですか? –

+1

繰り返し: '.'は任意の1文字(現代のPythonではUnicode文字)にマッチし、' [^] 'はスペース以外の任意の1文字にマッチします。繰り返しの意味は同じ表現の可能な限り多くの一致に一致します。 – tripleee

+0

ありがとうトリプルリー、投票し、回答を回答としてマークしてください。 –

2

試してみてくださいS \

a = re.compile('foo:\S*') 

は空白以外のものをいいます。

http://pythex.orgをチェックアウトすることをおすすめします。 定期的な表現をテストするのには本当に良いですし、まともなチートシートを持っています。

UPDATE:(。)

ものは何でも、すべてのUnicode/UTF-8文字にマッチします。

+0

boogiehound、答えて投票してくれてありがとう。私の質問は実際に**何か**ここにあります。** Python 2.7の** Anything **の文字表はありますか? –

+0

リンクされたサイトのチートシートにもそれがあります。 – tripleee

+1

私は99%確信しています。何か意味があります。文字テーブルは必要ありません。私は 'anything'に一致しない文字で何も問題がなかった – Vaelor