0

次の正規表現を作成したいと思います。

* [ * , * ] *

私は次の*ことを試しました:

/[*.,.*]/

しかし、そうではありません(問題がある場合は、JavaScriptで必要になります)

正しいテキストの例:

  • テスト[1,2]
  • テスト[3,テスト2]

誰でも助けることができますか?

4

5 に答える 5

2

これを試して:

[^\[]*\[[^\]]*\]
^----^ anything but [
      ^^ - [
        ^----^ - anything but ]
              ^^ - ]

^オプションで、正規表現全体をラップして、$文字列全体のみに一致させることができます。

例:

> /^[^\[]*\[[^\]]*\]$/.test("test[1,2]")
true
> /^[^\[]*\[[^\]]*\]$/.test("test[1,test2]")
true
> /^[^\[]*\[[^\]]*\]$/.test("test_wrong")
false
> /^[^\[]*\[[^\]]*\]$/.test("test[wrong")
false
于 2013-07-11T08:15:40.500 に答える
1
/\[[^,]*,[^]]*\]/
 --               opening bracket
   ----           non-comma
       -             any number of them
        -         comma
         ----     non-closing-bracket
             -       any number of them
              --  closing bracket
于 2013-07-11T08:18:26.443 に答える
0
/^.*\[.*,.*\].*$/

// e.g:
"my [awesome, string] of text".match(/^.*\[.*,.*\].*$/)
于 2013-07-11T08:16:09.277 に答える
0

次の正規表現を試してください。

/\S+\[\S+,\S+\]/

グループ化された結果も必要ですか?

指摘したように、\S は , を含む非空白文字と一致するため、これはより良いかもしれませんが、読みにくくなります。

/([\w\d]+\[[\w\d]+,[\w\d]+\])/g

一致するすべての出現のリストを取得するための match メソッドで使用できるように、括弧を追加しました。

于 2013-07-11T08:16:24.793 に答える
0

これがあなたの正規表現です:

/.*\[.*,.*\].*/

于 2013-07-11T08:17:18.173 に答える