python中的多正则表达式匹配

python中的多正则表达式匹配,python,regex,Python,Regex,我不熟悉python中的正则表达式,虽然简单的例子很容易,但我在使用正则表达式从字符串中提取多个单词时遇到了困难。字符串如下所示: 林恩=| 0x008d | 2345 | 0xE54B52 | 0520 | 0x02绿色| 4红色| 并使用match.group访问| |之间的不同子字符串 有没有办法做到这一点…有人能帮忙吗 谢谢不需要正则表达式: substrs = [x.strip() for x in lyne.split('|') if x] 不需要正则表达式: substrs =

我不熟悉python中的正则表达式,虽然简单的例子很容易,但我在使用正则表达式从字符串中提取多个单词时遇到了困难。字符串如下所示:

林恩=| 0x008d | 2345 | 0xE54B52 | 0520 | 0x02绿色| 4红色|

并使用match.group访问| |之间的不同子字符串

有没有办法做到这一点…有人能帮忙吗

谢谢

不需要正则表达式:

substrs = [x.strip() for x in lyne.split('|') if x]
不需要正则表达式:

substrs = [x.strip() for x in lyne.split('|') if x]

任何原因都不能只使用lyne.split“|”,否则使用re.split处理相同的事情

如果您确实希望一个regexp匹配/查找而不是拆分,请去掉空格:

>>> re.findall(r'\|?\s*(.*?)\s*\|', lyne)
['0x008d', '2345', '0xe54b5b42', '0520', '0x02 GREEN', '4 RED']

任何原因都不能只使用lyne.split“|”,否则使用re.split处理相同的事情

如果您确实希望一个regexp匹配/查找而不是拆分,请去掉空格:

>>> re.findall(r'\|?\s*(.*?)\s*\|', lyne)
['0x008d', '2345', '0xe54b5b42', '0520', '0x02 GREEN', '4 RED']