我使用模式\\n(((?!\.g).)*?\.vcf\.gz)\\r
来匹配字符串中所需的子字符串。在下面的示例字符串中,匹配项位于字符串的中间,被两个\r\n
所包围。
"\r\n1115492_23181_0_0.g.vcf.gz.tbi\r\n1115492_23181_0_0.vcf.gz\r\n1115492_23181_0_0.vcf.gz.tbi\r\n..."
使用上面的模式可以生成所需的字符串1115492_23181_0_0.vcf.gz
和0
。
我的问题是什么是正确的正则表达式只得到所需的字符串。
- 谢谢-谢谢
1条答案
按热度按时间9gm1akwq1#
您有相等的匹配行,因此匹配扩展名
.vcf.gz
之前任何位置不包含.g
的所有行:请参阅Python demo。
^
-行首((?:(?!\.g).)*\.vcf\.gz)
-组1:(?:(?!\.g).)*
-除换行符以外的任何字符,出现一次或多次,但要尽可能多,并且不启动.g
字符序列\.vcf\.gz
-.vcf.gz
字串\r?
-可选CR(回车)$
-行尾。