我想创建以下正则表达式:
* [ * , * ] *
其中*
可以是任何大小的任何文本
我尝试过以下方法:
/[*.,.*]/
但不是这样 (如果重要的话,我将需要它用于JavaScript)
正确文字的示例:
有人可以帮忙吗?
答案 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)
这是你的正则表达式:
/.*\[.*,.*\].*/