<p>获取匹配的组表单索引1和索引2,以获取每个三元组的第一项和最后一项</p>
<pre><code> ([^|]+)\|[^|]+\|([^|]+)
First item -^^^^^^ ^ ^ ^^^^^ -Last item
First Pipe_____| |_______Second pipe
</code></pre>
<p>这是<a href="http://regex101.com/r/xE6pT6/2" rel="nofollow">online demo</a></p>
<p><strong>注意:</strong>添加<code>\s</code>以匹配任何空格字符<code>[\r\n\t\f ]</code>,如以下注释所示。你知道吗</p>
<p>示例代码:</p>
<pre><code>import re
p = re.compile(ur'([^|]+)\|[^|]+\|([^|]+)')
test_str = u"..."
re.findall(p, test_str)
</code></pre>
<p>图案说明:</p>
<pre><code> ( group and capture to \1:
[^|]+ any character except: '|' (1 or more times)
) end of \1
\| '|'
[^|]+ any character except: '|' (1 or more times)
\| '|'
( group and capture to \2:
[^|]+ any character except: '|' (1 or more times)
) end of \2
</code></pre>
<p>阅读更多关于</p>
<ul>
<li><a href="http://www.regular-expressions.info/brackets.html" rel="nofollow">Use Parentheses for Grouping and Capturing</a></li>
<li><a href="http://www.regular-expressions.info/charclass.html" rel="nofollow">Negated Character Classes</a></li>
</ul>