<p>你不需要用regex解析。在</p>
<p>您的文字:</p>
<pre><code>s = """
| | -| | | |
| Assembly name | User name | Path | Start Time | State |
| 127.0.0.1 -| -| Shell version 1.2.1-13-09-27 | | |
|ng40core2 |ng40 |/home/regress/ng40core2 |2013-10-07 16:55:52 |Running |
|ng40core1 |ng40 |/home/regress/ng40core1 |2013-10-07 16:53:54 |Running |
| | -| | | |
"""
</code></pre>
<p>代码:</p>
^{pr2}$
<p>结果是:</p>
<pre><code>>>>
ng40core2 ng40 /home/regress/ng40core2 2013-10-07 16:55:52 Running
ng40core1 ng40 /home/regress/ng40core1 2013-10-07 16:53:54 Running
</code></pre>
<p>为了好玩,我做了一个更健壮的函数:</p>
<pre><code>def retrieve(file_path):
with open(file_path) as f:
for assembly_name, user_name, path, start_date, state in parse(f.read()):
# code
print assembly_name, user_name, path, start_date, state # example
def parse(text):
for line in text.splitlines():
line = [x for x in line.split('|') if x]
if line and line[0].startswith('ng'):
yield [x.strip() for x in line]
</code></pre>