我不知道怎么写这样的regex。我先举个例子。
我的坏判罚:
(\d*),?(\d*\.?\d*)-?(\d*\.?\d*),?([0-1]?),?([0-1]?),?([^\/]*)合适的匹配:
1,2-3,1,1,asdf
1,2-3,1,1
1,2-3,1
1,2-3
1,2
1但不幸的是,这也将是匹配的,我不希望它是:
asdf
1,asdf理想情况下,我希望-匹配,如果以前的小组是匹配的。
我知道应该用正面的眼光看后面,但是如果我没有错的话,应该在每个小组的前面正确地使用,除了第一和正则表达式之后会很大很臭。嗯,可能是可变长度。
有什么优雅的方法吗?
编辑
我想匹配所有的行,下面给出的匹配是可以的。
我想把\d*和第一组相匹配。然后,如果\d*与,匹配,那么我想将(\d*\.?\d*)匹配到第二组。在此之后,如果在第一组中有匹配,然后是,,然后是第二组,然后是-,我想匹配另一个(\d*\.?\d*).等到Regex的尽头。
发布于 2010-12-08 07:53:46
你的问题不太清楚,但从例子来看,我认为这是你需要的:
^\d(,\d-\d(,\d(,\d(,[a-z]+)?)?)?)?$

它符合:
1,2-3,1,1,asdf
1,2-3,1,1
1,2-3,1
1,2-3
1,2
1测试链接。
https://stackoverflow.com/questions/4385229
复制相似问题