regex - 在正则表达式中指定范围

标签 regex linux sed vi

我正在尝试使用正则表达式在较长的字符串中查找字符串(参见附加示例)。我目前在 Vi 工作。我使用的正则表达式是 [CT]A...T(粗体表示使用的字符串)。我只想找到 [ 字符固定范围内的示例。我试过使用 [CT]A...T.{5,10}[ 但这没有用,[CT]A...T.{5,10 }[。我也试过 [CT]A...T.[.....-......-.......-.......-...... ..][ 没有成功,因为我猜 [.*] 在正则表达式中不好。我现在没有想法,在互联网上找不到任何其他东西。

编辑 我想要的是仅在 [ 字符上游找到正则表达式 [CT]A...T 字符串 5-10 个字符。所以 CATAATAATTCC[ 或 TATAATCGACAGAA[。我在下面的一些示例中放置了 **,以说明它会找到什么。

示例集:

AACGGTTGGAGCAGCGTTCACCTGACGC**TATACTGCTTCT[**C]TTTCTTATTGCTCAAACTG
TTCCTGGTTATTTTGCCGCAGGTCAGCG**TATCGTGAACAT[**C]TTTTCCAGTGTTCAGTAGG
AGATAATGCGAAAAAACAGCCTTTCCGG**TACTCTACGGCG[**G]TTTTATCGTCCTGTAGAGA
TGAAACCGTTGTTTATTCATGCGTTGCGATTAACAATACG[C]TTTTCCAGAGAGCGGCTTT
TCGCTTCAATTTCGACCAGCCATCCTCTATTCTGATGGGT[A]TTTACCACTGGTCCCGGAA
AATGGCGAGTAATTGCCAGTTGATCCTGGTATCATCAGAG[C]TTTGCTGCATCTGCTGAAG
AGAAGTGGAATCCCGACTGCATATCGCGTAGTGTAGAACG[G]CCTTTTTTTCGTCAACCGT
TTTCCACACCTAAAATGCTATTTCTGCGATAATAGCAACC[G]TTTCGTGACAGGAATCACG
CCTAGTTTGCTTACGGACTCACAGGGCGTAAACTAGCGCC[G]TTTTTTTAAGTGATGAGAA
TGGCTGTATTTGCCGCACCGCGCAGGTATACTCCTTTCCT[G]GTTTTTTTAATCACTACGT
GAGAATTGACTCCGGAGTGTACAATTATTACAATCCGGCC[T]CTTTAATCACCCATGGCTT
GGCAGTTGGTTGACGGTGAAACGCGTATTAAAATGCCACC[C]TTTACACCCTGGTGGTGAC
TTTTCATCGCTCAAGGCGGGCCGTGTAACGTATAATGCGG[C]TTTGTTTAATCATCATCTA
ACACGATGTCACGGTAACGCCTGTACGGTAAACTATGCGG[G]TTTACGGTCAGTACCCACA
AATCCTTCCTTTCCCCGGCAGCTGGCGTTATGGTCAGATG[G]TTTTTGCAACAAATCTCAC
ACTGTATATTCATTCAGGTCAATTTGTGTCATAATTAACC[G]TTTGTGATCGCCGGTAGCA
CAACATAGTAAAAGCGCTATTGGTAATGGTACAATCGCGC[G]TTTACACTTATTCAGAACG
TTCGGTTGAAAAAGCCGCTATGATCGCCGGATAATCGTTT[G]CTTTTTTTACCACCCGTTT
TATCGTCGGCGTACCAGACGGTGTGTGGTATACTTACGGG[G]TTTTTCTTCATTGTATGGT
CCGCCTTTATTATATTCATACGGGATATTGCTATTGTTTC[T]TTTTCCCTGGGATTTGTCA
AATGCTTGCGCCGCTTCTGACGATGAGTATAATGCCGGAC[A]ATTTGCCGGGAGGATGTAT
GAGTAGCCAGAGTAGCGGCATTGTTGCGGATAATGGTCAG[G]TTTACCTCAGCGGAATGCC
AGTGACTATATTGATCCACAATTGCGTGTATCATAGATGT[T]TTGCCCATCAGGGGCGACC

最佳答案

我相信以下正则表达式应该适合您:

[CT].{5,10}\[

使用egrep:

egrep -o '[CT].{5,10}\[' file
TACTGCTTCT[
TCGTGAACAT[
CTCTACGGCG[
TTAACAATACG[
TTCTGATGGGT[
TATCATCAGAG[
TGTAGAACG[
TAATAGCAACC[
CTAGCGCC[
CTCCTTTCCT[
CAATCCGGCC[
TGCCACC[
TATAATGCGG[
CTATGCGG[
TGGTCAGATG[
CATAATTAACC[
TACAATCGCGC[
TAATCGTTT[
TACTTACGGG[
CTATTGTTTC[
TAATGCCGGAC[
TAATGGTCAG[
TCATAGATGT[

关于regex - 在正则表达式中指定范围,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22999182/

相关文章:

python - 如何获取以数字开头作为行首并以 5 位数字结尾的字符串

c - 如何在 MinGW 中使用预编译静态库?

java - 失败 - 上下文路径中的应用程序/应用程序无法由 Tomcat Manager 6 启动

正则表达式:在多行上使用 sed 提取两个字符串之间的内容

macos - 需要帮助将 sed 命令从 debian 移植到 OSX

linux - 删除多行中的重复字符串

带有正则表达式的 Python 3.7 : Why can I no longer substitute with a string containing a backslash (\)?

regex - 如何制作正则表达式来替换 json 文件中的键值

c# - 如何在 .NET 中使用 perl 风格的替换表达式

linux - 对文件每一行的制表符分隔数字进行排序