2012-04-17 11 views
0

角括弧の中からテキストを抽出したいと私は[(.*?)]を使用していますが、完全には機能しません。角括弧の間のテキストを抽出する正規表現

4月17日夜01時01分34秒10.11.26.83 2012-04-17 00:30:52.222 -0700バラクーダWF ALER OS_CMD_INJECTION_IN_URL 99.99.182.1 49923 99.99.83.74 80セキュリティポリシーグローバル= タイプNONEを否定できない"os-command-injection" pattern = "perl-language-function-substrings" token = "/ fork") GET 99.99.83.74/index.html/fork()HTTP " - " "Wget/1.12(linux -gnu)」99.99.182.1 49923 " - " " - "

私は大胆テキストを抽出したいです。これを行う正規表現は何ですか?

+0

完全に作業していないとはどういう意味ですか?私はあなたの正規表現を使用し、すでにグループ1に必要な一致があります。 –

+0

使用している正規表現が正しいため、あなたのエラーが別の場所にあるように見えます。 – hochl

+0

とはどのように食べるのですか?私が覚えているように、それは '\ n'を食べません。たぶん私は間違っています – gaussblurinc

答えて

2

@rprakash "]以外の任意の文字" の文字クラスです:

解剖学模様の

<!-- 
\[(.*?)\] 

Match the character “[” literally «\[» 
Match the regular expression below and capture its match into backreference number 1 «(.*?)» 
    Match any single character that is not a line break character «.*?» 
     Between zero and unlimited times, as few times as possible, expanding as needed (lazy) «*?» 
Match the character “]” literally «\]» 
--> 

REGEX無効な文字クラスドットオペレータの代わりに使用することは常に安全です。

ボヘミアンは\[[^\]]+\]と言っているかもしれませんが、\[(?#if grouping required)([^\]\[]+)\]を使用する方が安全かもしれません。

この件でより良い足場を作るためにvisit here

0

これを試してみてください:

\[[^\]]+\] 

[^\]]

関連する問題