2012-05-10 13 views
2

次のregexpは実際にはどういう意味ですか?この正規表現は何を意味しますか?

str_([^_]*)(_[_0-9a-z]*)? 

そしてそれは^str_[^_]*(_[_0-9a-z]*)?と等しいですか?

+1

[this](http://www.roblocher.com/technotes/regexp.aspx)をご覧ください。役に立つかもしれません。 –

答えて

5

str_は文字通り

([^_]*)は、任意の文字にアンダースコア

(_[_0-9a-z]*)?マッチ別のアンダースコアと文字​​の後、0以上ではありません0回以上一致したこれらの文字に一致します。この最後の部分はオプションです。

I wrote recently a really brief regex introduction, hope it will help you.

+0

だから、 'str_MOTH_clone'がregexpと一致するはずですよね? –

+0

はい、[それをRegexrで見る](http://regexr.com?30tg5) – stema

0

str_([^_]*)(_[_0-9a-z]*)?

ので、のは、正規表現に話をしましょう:

1)([^_]*) - 任意の数のキャッチ()を(ゼロが可能である)、このシンボル_^ではありません*シンボル[]を、。

2)(_[_0-9a-z]*)?は - であることや、?になると述べたように任意の数*_a,b,c,..,zまたは0,1,..9

4

などの設定[]から任意のシンボルに表示されているシンボル_と列の最後尾を始めと()シーケンスをキャッチしていません私の答えにコメントで、http://gskinner.com/RegExr/は、あなたがそれを置く場合は、正規表現についてのすべてを説明しています。

str_([^_]*)(_[_0-9a-z]*)? 
\ /^\ /^^^^\  /^^^ 
\/ | \/ |||| \ /||| 
| | | |||| \ /||`- Previous group is optional 
| | | |||| \/ |`-- End second capture group (an underscore and any amount of characters _, 0-9 or a-z) 
| | | |||| | `--- Match any amount (0-infinite) of previous (any character _, 0-9 or a-z) 
| | | |||| `-------- Match any of the characters inside brackets 
| | | ||||    (0-9 means any number between 0 and 9, a-z means any lower case char between a and z) 
| | | |||`------------- Match "_" literally 
| | | ||`-------------- Start second capture group 
| | | |`--------------- End first capture group (any amount of any character which is not underscore) 
| | | `---------------- Match any amount (0-infinite) of previous (any character which is not underscore) 
| | `-------------------^at the start inside [] means match any character not after^
| |      (In this case, match any which is not underscore) 
| `--------------------- Start first capture group 
`------------------------ Match "str_" literally 

の最初のは、入力した行の先頭に一致する必要があることを意味します。

+0

Whoah。これはツールによって生成されますか、それとも実際に入力しましたか? –

+0

@ li-aung-yip:これをタイプしましたが、これについてのツールは良いアイデアだと思います。アイデアをありがとう。 :D – ohaal

+1

完全なボールと努力のためのUpvote。次回はregexrを使います。 ;) –

関連する問題