2012-01-16 16 views
0

私は私がこれを持って正規表現は

をWORD4返しますWORD3と別のものを返します1つの正規表現をしたい

word1_word2_word3_word4_word5 

_間の単語を返します。正規表現をしたいと思います_ 2の間の単語を取得します正規表現this _[^_]+_ start with but wok

+0

どの言語ですか? – miku

+0

@miku SQL Oracle –

+1

'word2'についてはどうですか?アンダースコアの間にもあります。 –

答えて

3

文字列を "_"で分割し、インデックス2と3を使ってチャンクにアクセスするだけで、もっと簡単にやりたいことができます。

+0

私はOracleのためにそれをやっています –

+0

ああ、以前はOracleとしてタグ付けされていません。 – Flo

+0

私はOracleのRegexフレーバーに精通していませんが、私はあなたが "\ _word2 \ _"と "\ _word4 \ _"を返すと推測しています。先頭と末尾のアンダースコアのない[^ _] +は動作するはずです。 – Flo

0

この正規表現は、それらの単語をキャプチャします:

(?<(^|_))[^_]+(?=(_|$)) 

それは_または起動のための背後にある外観を使用して、そして_または終了のための先読みです。
FYI、looks/aheadsは無駄です。つまり、「幅ゼロ」です。