【发布时间】:2014-02-18 03:54:16
【问题描述】:
考虑一个模糊的正则表达式,例如[a-z]{0,9}f[a-z]{0,2}。它将匹配诸如abcdefgh 之类的字符串。我在这个正则表达式中添加了额外的元素,我希望它能够测试正则表达式的几个不同部分。
对于[a-z]{0,3}f[a-z]{2}e[a-z]{0,5},它将匹配face。但我希望它也可以测试字符串以匹配[a-z]{0,3}f 或f[a-z]{2}e 或[a-z]{0,3}f[a-z]{2}e 或f[a-z]{2}e[a-z]{0,5},但不要弄乱e[a-z]{0,5}f 之类的顺序。更简单地说:我有一个主正则表达式,我想尝试测试不同的字符串。但我不仅想测试整个正则表达式,而且还想测试它的每个单独部分,看看字符串是否适合里面的某个地方。
我不能简单地手动输入所有不同的正则表达式可能性,因为它们是由其他执行的方法生成的,并且每次都会不同,但始终遵循上述相同的通用格式:从 0 到的字母范围一些有限的数字,一个或多个字母,可以填补“空白”的特定数量的字母,另一个字母范围,除了这次是特定的,等等。
我已经花费了数小时来思考和尝试不同的代码位来尝试拆分正则表达式并测试每个拆分,然后将一些拆分合并在一起以尝试创建每种可能性。最终我屈服于挑战并决定寻求帮助。很难描述我想要完成的工作,所以我希望我做得足够好。请多多包涵。
【问题讨论】:
-
所以基本上你想找到匹配的最短的子正则表达式?
标签: java regex string loops split