Python 正则表达式中的问题

Python 正则表达式中的问题,python,regex,Python,Regex,使用正则表达式匹配“Reference:G.”中的G 我尝试使用这个,但仍然出现错误 refresidue = re.compiler(r'(s/Reference: \ //n)') 还有其他建议吗?因为我对这方面还不太熟悉。非常感谢您的帮助 “引用:G.”引用可以是A、C、G或T 很抱歉造成混淆-我希望输出只打印字符(A、C、G、T),而不是引用: 这是我的密码 refresidue=re.compiler(r'(s/Reference:\//n)' a_matchref=refresid

使用正则表达式匹配“Reference:G.”中的G

我尝试使用这个,但仍然出现错误

refresidue = re.compiler(r'(s/Reference: \ //n)')
还有其他建议吗?因为我对这方面还不太熟悉。非常感谢您的帮助

“引用:G.”引用可以是A、C、G或T

很抱歉造成混淆-我希望输出只打印字符(A、C、G、T),而不是引用:

这是我的密码

refresidue=re.compiler(r'(s/Reference:\//n)'

a_matchref=refresidue.search(第[2]行)

如果a_matchref不是无:

   a_matchref = a_matchref.group(1)

您混合了来自JavaScript(或其他一些正则表达式风格)和Python的正则表达式语法;正则表达式本身也很奇怪。另外,
re.compile()
编译一个正则表达式,它与任何东西都不匹配

假设要匹配文本
参考:
后的单个字母数字字符,请尝试以下操作:

refresidue = re.search(r"Reference:\s*(\w)", your_text_to_be_matched).group(1)

我认为这是您所追求的,但也许您可以添加更多关于您正在匹配的数据类型的示例-

import re
refresidue = re.compile(r'Reference: ([A-Z])')
您可以这样使用上面的命令:

>>>> refresidue.match("Reference: G").group(1)
'G'

下面是我如何一步一步解决这个问题的。即使在使用regexp几年之后,一些特定的语法也总是在我的脑海中闪过。在这种情况下,最好从一个简短的表达开始,它绝对应该符合你想要的

让我们使用
re
模块

>>> import re
那么错误是什么呢

>>> refresidue = re.compiler(r'(s/Reference: \ //n)')
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
AttributeError: 'module' object has no attribute 'compiler'
所以它必须是
re.compile

>>> refresidue = re.compile(r'(s/Reference: \ //n)')(re)
好的,编译完成了。让我们用它来匹配字符串

>>> refresidue.match('Reference: G')
什么都没有?那就删掉这个表达吧

>>> refresidue = re.compile(r'Reference:')
>>> refresidue.match('Reference: G')
<_sre.SRE_Match object at 0x7fe14701f030>
group
听起来很像

>>> refresidue.match('Reference: G').group   
<built-in method group of _sre.SRE_Match object at 0x7fe1470b9738>
这个怎么样

>>> refresidue.match('Reference: G').group(1)
'G'

在那里,G.

它是
re.compile
,而不是
re.compiler
。如果
G
不包含
,您可以使用
mystr.split(':')[1]
进行拆分,然后使用
mystr.split(':')[1]
进行第二部分的操作谢谢提醒,我现在意识到了打字错误。错误是没有打印出任何内容,只有空白。“Reference:G.”我很抱歉混淆了-我想要的是输出只打印出字符G,而不是Reference正则表达式非常适合我的编码,对不起我的愚蠢,我现在意识到是错误造成的。感谢@Tim Pietzcker refresidue=re.compile(r'Reference:\s*(\w))a_matchref=refresidue.search(第[2]行),如果a_matchref不是None:a_matchref=a_matchref.group(1)
>>> refresidue = re.compile(r'Reference: [A-Z]')
>>> refresidue.match('Reference: G')
<_sre.SRE_Match object at 0x7fe14701f030>
>>> refresidue = re.compile(r'Reference: ([A-Z])')
>>> refresidue.match('Reference: G')
<_sre.SRE_Match object at 0x7fe1470b9738>
>>> dir(refresidue.match('Reference: G'))
['__copy__', '__deepcopy__', 'end', 'expand', 'group', 'groupdict', 'groups', 'span', 'start']
>>> refresidue.match('Reference: G').group   
<built-in method group of _sre.SRE_Match object at 0x7fe1470b9738>
>>> refresidue.match('Reference: G').group(0)
'Reference: G'
>>> refresidue.match('Reference: G').group(1)
'G'