考虑以下两种情况,在这两种情况下,要测试的字符串都将仅包含任意组合的字符“a”、“t”、“g”和“c”,并且可以是任意长度。例如,它可能只有“t”。
- 测试“a”是否出现超过 5 次。如果字符串的长度为 100,并且字符“a”在前 10 个位置出现五次,则正则表达式不应搜索剩余的字符串。
- 测试是否零个或多个连续的“a”只出现一次,并且字符串不能以“a”结尾。有效示例:ggtcccccccctggtaaaatcg、gctgctcgtccttgcttcg、ag。无效:a、agatcttgcgt、agtcga。
现在我知道如何构建一个基本的正则表达式来测试这两种情况,但我想确保搜索得到优化并且不会浪费不必要的迭代。在上面的第二点中,agatcttgcgt 应该在测试第三个字符后立即终止,因为它违反了连续规则。
优化正则表达式的任何帮助都会有所帮助。此外,这不是主要问题,而是我如何才能看到如何执行搜索的内部信息(迭代次数等)?