我在java中寻找与以下模式匹配的正则表达式:
两个交替的数字或字母值示例:12121212或adadadad
至少有4位连续数字的数字或字母序列示例:cdefgh或123456
感谢
答案 0 :(得分:2)
我认为正则表达式可能是模式2的错误工具。“所有数字”或“所有alpha”都很容易,但“顺序”要求很难表达。你可能最好写一个简单的循环来检查你的要求。
答案 1 :(得分:0)
正则表达式不是为解析这些模式而设计的。但是,你可能能够解决这个问题,虽然这很麻烦。
第二个可以相当容易地强制完成四个序列:
(abcd|bcde|cdef|...|wxyz|0123|1234|...|6789)
但这绝不包括5个序列和更高的序列。这将是令人讨厌的。
你可以为第一种情况做类似的事情,虽然这有点不合理,因为有26个字母+10个数字(我假设你只是为小写做这个),所以如果你想要任何交替对你的正则表达式需要36 * 35 = 1260种可能性。这有点长。 COULD 可以完成,但这是不可取的。
您的示例当然可以解析如下:
(12|ab)+
哪个是合理的。但是,如果您正在为任何数字/字母表配对寻找更通用的解决方案,则需要详尽地生成列表。
总之,最好的办法是不要使用正则表达式。它们并非旨在用于这些类型的搜索。
答案 2 :(得分:0)
对于第一个,如果你有一个SIGMA,这是你的字母表,你可以这样做:
(SIGMA SIGMA)+
这允许aaaaaa,但我不确定是否允许......