Python:指定正则表达式模式,将字符串大致分为一半并生成元组

时间:2017-10-07 01:35:03

标签: python

我有一个字符串:

[!] There was an error parsing `Gemfile`: Illformed requirement [">= 3.2, < 5.0"]. Bundler cannot continue.

 #  from /Users/myname/MySite/Gemfile:70
 #  -------------------------------------------
 #    gem 'capistrano-maintenance', '~> 1.0', :require => false
 >    gem 'rbnacl', '>= 3.2, < 5.0', :require => false
 #    gem 'rbnacl-libsodium', :require => false
 #  -------------------------------------------

我正在尝试制作一个将字符串分成两半的正则表达式模式。我相信它类似于:

S = 'ABCKFDJRFMDLERKDFLKERWERJF'

但这要复杂得多,因为我需要先找到将字符串分成两半的地方。我想做的是:

对于名为divider的函数,

word_1 = 'jupiter'
pattern_1 = re.compile('(\w+\s)'+word_1+'(\s\w+)')

我真的不明白在这种情况下首先要做什么。如果我的问题很难理解,请告诉我。

2 个答案:

答案 0 :(得分:1)

如果我正确理解您的问题,您甚至不需要正则表达式,只需使用string.find()

def divider(s, splitter):
    idx = s.find(splitter)
    returrn s[:idx], s[idx+len(splitter):]

答案 1 :(得分:0)

你可以试试这个:

import re
S = 'ABCKFDJRFMDLERKDFLKERWERJF'
final_string = tuple(re.findall(".{"+str(len(S)//2)+"}", S))

输出:

('ABCKFDJRFMDLE', 'RKDFLKERWERJF')