擅长:python、mysql、java
<p>下面的正则表达式获取两个delimter <code>Round: </code>和<code> |</code>之间的值</p>
<pre><code>import re
c = 'GPA: 3.2 GMAT: 750 Round: Rolling Admissions | NY'
R = re.findall('Round\: (.*?) \|', c)
print(R) # output: 'Rolling Admissions'
</code></pre>
<p>编辑:
注意,有几个实例中管道标志不可用。使用以下命令将搜索<code>Round: </code>之后和<code> |</code>之前的字符串,或搜索到字符串的结尾</p>
<pre><code>import re
s = 'GPA: 3.4 GRE: 317 Round: Round 2 | West'
d = 'GPA: 3.7 GRE: 328 Round: Round 3 | Singapore'
a = 'GPA: undergrad: 3.68 grad: DPT 3.32 GMAT Waiver Round: Round 3'
c = 'GPA: 3.2 GMAT: 750 Round: Rolling Admissions | NY'
print(re.findall('Round: (.*?) ($|\|)', s)) #output: [('Round 2', '|')]
print(re.findall('Round: (.*?) ($|\|)', d)) #output: [('Round 3', '|')]
print(re.findall('Round: (.*?) ($|\|)', a)) #output: [('Round 3 ', '|')]
print(re.findall('Round: (.*?) ($|\|)', c)) #output: [('Rolling Admissions', '|')]
</code></pre>
<p>您只需要获取第一个元素,这将是您请求的值</p>
<p>例如</p>
<pre><code>value = re.findall('Round: (.*?) ($|\|)', c)) #output: [('Rolling Admissions', '|')]
print(value[0][0]) # since the output is a tuple within a list
</code></pre>