java正则表达式:在2个标记之间提取DNA信息
我想从文件中提取一些DNA信息。
在由碱基GCAT组成的DNA数据之前有一个单词ORIGIN
,之后是一个//
。如何编写正则表达式来获取这些标记之间的这些碱基
我试过以下方法,但不起作用
[ORIGIN(GCATgcat)////]
样本数据:
ORIGIN
1 acagatgaag acagatgaag acagatgaag acagatgaag
2 acagatgaag acagatgaag acagatgaag acagatgaag
//
# 1 楼答案
尝试这种模式“
\\b([GCATgcat]+)\\b
”,它匹配任何由单词边界包围的GCAT字符序列(大写或小写)(因此它不会匹配嵌入其他字符串中的字符,比如单词“catalog”)。如果您在示例文件中反复扫描这个正则表达式,您将提取每个序列下面是一个示例文件:
# 2 楼答案
对于我们这些不是regex超级巫师的人,我建议采取两步走的方法。去掉明显的瑕疵,比如数字和换行符,然后进行匹配。e、 g