您好, 考虑到这个简单的正则表达式:
/(\w\w\w)*?TGA/g
和这两个字符串:
ATCGTTGAA
ATCGTTGAATGCAAATGACATGAC
我试图逐步理解正则表达式引擎正在搜索的内容,即:
步骤1:尝试匹配(\ w \ w \ w)0次,成功,尝试匹配之后的TGA,失败(那里发生了什么?回溯?)
第2步:...... ???
谢谢大家。
答案 0 :(得分:2)
这很简单。你需要分步进行分析。
1)捕获3
字母数字
2)继续捕获3个小组,直到你得到TGA
。non greedy
。
所以ATCGTTGAA
你有
1)ATC - GTT --GAA(找不到TGA
所以先跳过然后重新开始搜索)
2)TCG - TTG - AA(找不到TGA
所以跳过秒然后再开始搜索)
3)CGT - TGA
(Found)
同样适用于第二个例子。