Python 正则表达式搜索查询前后的查找

Python 正则表达式搜索查询前后的查找,python,regex,search,regex-group,Python,Regex,Search,Regex Group,所以我有这个序列,我尝试使用regex的搜索函数来查找查询发生之前的区域和查询发生之后的区域 这就是我所拥有的 sequence = 'abcdefghijklmnopqrstuvwxyz' query = 'jklmnop' 这就是我想要的结局 before = 'abcdefghi' after = 'qrstuvwxyz' 我试过前一个,但它不起作用。我想这会把它分成三组 sequence = 'abcdefghijklmnopqrstuvwxyz' query = 'jklmnop'

所以我有这个序列,我尝试使用regex的搜索函数来查找查询发生之前的区域和查询发生之后的区域

这就是我所拥有的

sequence = 'abcdefghijklmnopqrstuvwxyz'
query = 'jklmnop'
这就是我想要的结局

before = 'abcdefghi'
after = 'qrstuvwxyz'
我试过前一个,但它不起作用。我想这会把它分成三组

sequence = 'abcdefghijklmnopqrstuvwxyz'
query = 'jklmnop'
print re.search('\w+(query)\w+',sequence).group(0)
    Traceback (most recent call last):
      File "<stdin>", line 1, in <module>
    AttributeError: 'NoneType' object has no attribute 'group'
sequence='abcdefghijklmnopqrstuvwxyz'
查询='jklmnop'
打印重新搜索('\w+(查询)\w+',序列)。组(0)
回溯(最近一次呼叫最后一次):
文件“”,第1行,在
AttributeError:“非类型”对象没有属性“组”

在字符串中写入
query
不会在该字符串中存储
query
的值,它只是创建一个包含字符串“query”的新字符串

>>> print '\w+(query)\w+'
\w+(query)\w+
您应该使用字符串格式:

>>> sequence = 'abcdefghijklmnopqrstuvwxyz'
>>> query = 'jklmnop'
>>> '(\w+)({})(\w+)'.format(query)
'(\\w+)(jklmnop)(\\w+)'

>>> re.search('(\w+)({})(\w+)'.format(query),sequence).group(1)
'abcdefghi'
>>> re.search('(\w+)({})(\w+)'.format(query),sequence).group(3)
'qrstuvwxyz'
出于以下目的,最好使用
re.split

>>> strs = 'abcdefghijklmnopqrstuvwxyz'
>>> import re
>>> before, after = re.split('jklmnop',strs)
>>> before
'abcdefghi'
>>> after
'qrstuvwxyz'

在字符串中写入
query
不会在该字符串中存储
query
的值,它只是创建一个包含字符串“query”的新字符串

>>> print '\w+(query)\w+'
\w+(query)\w+
您应该使用字符串格式:

>>> sequence = 'abcdefghijklmnopqrstuvwxyz'
>>> query = 'jklmnop'
>>> '(\w+)({})(\w+)'.format(query)
'(\\w+)(jklmnop)(\\w+)'

>>> re.search('(\w+)({})(\w+)'.format(query),sequence).group(1)
'abcdefghi'
>>> re.search('(\w+)({})(\w+)'.format(query),sequence).group(3)
'qrstuvwxyz'
出于以下目的,最好使用
re.split

>>> strs = 'abcdefghijklmnopqrstuvwxyz'
>>> import re
>>> before, after = re.split('jklmnop',strs)
>>> before
'abcdefghi'
>>> after
'qrstuvwxyz'

谢谢,这是一个很好的解释,但是format对{}有什么作用?@draconis0ry
{}
是一个占位符,它指定传递给
format()
的参数值将在字符串中存储(替换)的位置。请看一些示例:谢谢,这是一个很好的解释,但是format对{}@draconis0ry做了什么?
{}
是一个占位符,它指定传递给
format()
的参数值将在字符串中存储(替换)的位置。请看一些例子: