2014-01-15 91 views
0

我无法在PHP中找到正确的解决方案。我的字符串模式会像以括号开头和结尾的正则表达式

[{}] 
[{1}] 
[{1,3}] 
[{1,3,4}] 
etc.. 

我试着使用像"/^\[\{\d|,*\}\]$/i"正则表达式。但它并不完美。

基本上,字符串应以“[{”(一次)开始,以“}]”(一次)结尾,并包含数字字符和“,”。

希望这可以使我的查询清晰。 谢谢,

+0

你能告诉我们你认为这部分是做什么的吗? '\ d |,*' – meagar

+0

你可能会觉得这很有用,http://gskinner.com/RegExr/ –

+0

@meagar:\ d给出[0-9],'|'表示OR,“,”是允许的另一个字符,“*”表示该序列可以出现的任何次数。 IanJamieson:我已经尝试过了。但是我发现它对于检查和不构建正则表达式很有用。可能是我错过了什么? –

回答

0

尝试:

(\[{[0-9,]+}\]) 

它会匹配所有的情况下,有数字和逗号[{和}]

之间的混合

See it in action

+0

真的应该更具体一些,我认为我们不想匹配',, 5,,'或其他类似的东西。 – meagar

+0

emh:它对我的需求很有用,因为我已经得到了一个消毒输入,没有重复逗号之间没有数字,但是,如果我们想要一个严格的匹配,那么微薄的视点t也是要考虑的。但是,无论如何感谢... –

+0

太棒了,很高兴它为你工作。 – emh

1

与刚刚尝试:

^\[\{((\d+,)*\d+)?\}\]$ 
+0

如果他有'[{1,3}],[{1,3,4}]'并且想要捕获每一个“group”.OP没有提供足够的细节 – tenub

+0

给出了“preg_match()[function.preg-match]:没有结尾分隔符'^'found” –

+0

@PratipGhosh这是纯正规表达式,你必须用'/ ' – hsz

相关问题