假设我有一个字符串,其中包含一些由“|”分隔的数据字段,例如 |1|2|3|4|5|6|7|8|
我的目的是获得第 8 场。这就是我正在做的事情:
pattern = re.compile(r'^\s+(\|.*?\|){8}')
match = pattern.match(test_line)
if match:
print:match.group(8)
但看起来无法匹配。我知道在这种情况下我需要使用 ? 对于非贪婪匹配,但为什么我无法获得第 8 场?
谢谢
假设我有一个字符串,其中包含一些由“|”分隔的数据字段,例如 |1|2|3|4|5|6|7|8|
我的目的是获得第 8 场。这就是我正在做的事情:
pattern = re.compile(r'^\s+(\|.*?\|){8}')
match = pattern.match(test_line)
if match:
print:match.group(8)
但看起来无法匹配。我知道在这种情况下我需要使用 ? 对于非贪婪匹配,但为什么我无法获得第 8 场?
谢谢
正则表达式可能会使这个问题复杂化而不是简化它。从 | 获取第八个项目的简单方法 分隔字符串正在使用 split():
a = '|here|is|some|data|separated|by|bars|hooray!|'
print a.split('|')[8]
回报
hooray!
使用 regex,获得它的一种方法是:
import re
a = '|here|is|some|data|separated|by|bars|hooray!|'
pattern = re.compile(r'([^\|]+)')
match = pattern.findall(a)
print match[7]
回报
hooray!