2017-08-25 64 views
3

我想写一个匹配以下指令的正则表达式 带有“AT”前缀的字符序列,后跟“nG”,其中n是从1到5的数字,然后是“G”,最后跟着一个5位数的后缀。蛋白质编码基因正则表达式

注意:只是普通的正则表达式不是语言特定的。

匹配的字符串的一个例子是这样的:“AT1G01040”

这是我可以构建AT[1-5]G(d\{1,5})但我不知道这是否是正确的答案。

请,我需要你的手对此表示感谢。

+0

_后跟后缀为5个数字digits_ - 您的意思是准确还是最多?如果确切的话,你需要'\ d {5}',而不是'1,5'。 –

+0

一些正则表达式引擎不支持'\ d',或者默认情况下也匹配Unicode数字,因此,我建议坚持'[0-9]'字符类/括号表达式。 –

+0

'AT [1-5] G(d \ {1,5})'??你不是指'AT [1-5] G(\ d {1,5})'\ d为数字 - 我假设这是一个错字:) –

回答

3

如果数字在端部的数量可以是从1至5,可以使用

^AT[1-5]G[0-9]{1,5}$ 

regex demo

注意的是,如果在最后的位数必须正好是5个,则必须删除1,

^AT[1-5]G[0-9]{5}$ 

详细

  • ^ - 串
  • AT的开始 - 一串字符AT
  • [1-5] - 12345
  • G - 一个G
  • [0-9]{1,5} - 一个ASCII数字的任何1至5连续出现(或 - 如果使用{5} - 精确至5次)
  • $ - 字符串结尾。
+0

嘿Wiktor非常感谢这个答案形式我的指示I认为这是我的正确答案。^AT [1-5] G [0-9] {1,5} $ –

+0

请如果我没有脱离主题,您是否也可以帮助我使用能够识别这些字符串的非确定性有限自动机(NFA)? –

+0

你是什么意思?上面的表达式将验证符合您要求的字符串。如果你需要从一些较长的文本中提取它们,你应该在大多数语言中用'\ b'替换'^'和'$'来代替单词边界。 –