2016-10-17 12 views
0

角括弧が付いていてもいなくてもよい文字列があります。文字列に角括弧がある場合は、空の文字列(またはnull値)に設定する必要があります。それ以外の場合は、*.?とします。正規表現:角括弧の場合は空に、それ以外の場合は通り

これは私がこれまで行ってきたことですが、間違いなく正しいです: (?(?=[\[^\]])("")|(.*?))

例の文字列は、abcdef[12345]です。 私はmousecatのようなものにマッチしたくありません。

この操作を実行するにはどうすればよいでしょうか? Javaプログラム内で実行されるregexステートメントを持つGrokテンプレートがあります。

ありがとうございます! ケレン

編集:角括弧内に数字がある場合、これを行うにはどうすればいいですか?大括弧内の何かではなく。

+1

を試してみてください角かっこ? – Barmar

+0

一致させる/一致させたくない文字列の例をいくつか提供できますか? –

+0

正規表現で '(" ")'の目的は何ですか? – Barmar

答えて

0

パターン:

^.*[\[\]].*$|^([^\[\]]*)$ 

交換:

$1 
+0

ありがとうBarmar!あなたは私よりも速かった;) – NikitOn

+0

例のように角かっこではなく、かっこがマッチしている。 – Barmar

+0

ああ、私は誤解しました。修正されました。 – NikitOn

0

あなたは空の文字列に文字列全体を設定、または単にの内容を置換するこの

var str = "abcdef[xxxx]"; 
console.log(/\[.+\]/i.exec(str)) 
関連する問題