需要特定的正则表达式

时间:2013-07-11 08:12:26

标签: javascript regex

我想创建以下正则表达式:

* [ * , * ] *

其中*可以是任何大小的任何文本 我尝试过以下方法:

/[*.,.*]/

但不是这样 (如果重要的话,我将需要它用于JavaScript)

正确文字的示例:

  • 测试[1,2]
  • 试验[3,TEST2]

有人可以帮忙吗?

5 个答案:

答案 0 :(得分:2)

试试这个:

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

您可以选择将整个正则表达式包装在^$中,以匹配整个字符串。

示例:

> /^[^\[]*\[[^\]]*\]$/.test("test[1,2]")
true
> /^[^\[]*\[[^\]]*\]$/.test("test[1,test2]")
true
> /^[^\[]*\[[^\]]*\]$/.test("test_wrong")
false
> /^[^\[]*\[[^\]]*\]$/.test("test[wrong")
false

答案 1 :(得分:1)

/\[[^,]*,[^]]*\]/
 --               opening bracket
   ----           non-comma
       -             any number of them
        -         comma
         ----     non-closing-bracket
             -       any number of them
              --  closing bracket

答案 2 :(得分:0)

/^.*\[.*,.*\].*$/

// e.g:
"my [awesome, string] of text".match(/^.*\[.*,.*\].*$/)

答案 3 :(得分:0)

试试这个正则表达式:

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

您是否也想要分组结果?

正如所指出的,\ S将匹配任何非空白字符,包括,所以这可能更好,但更难阅读。

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

我添加了括号,以便您可以使用匹配方法获取所有匹配事件的列表。

答案 4 :(得分:0)

这是你的正则表达式:

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