提取由子字符串分隔的组

2024-09-28 05:21:28 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个字符串,其中包含由特定子字符串分隔的组。比如:

FOO10 F10 O20  FOO20 F11 O11

我想把它分成几个组,同时保留组标识符,即

FOO10 F10 O20
FOO20 F11 O11

有没有一种方法可以捕捉到从单词FOO到下一个FOO的左边界或行尾的任何内容?你知道吗


Tags: 方法字符串内容foo标识符单词边界行尾
2条回答
>>> s = "FOO10 F10 O20  FOO20 F11 O11"
>>> import re
>>> regex = re.compile(r"FOO(?:(?!\s*FOO).)*")
>>> regex.findall(s)
['FOO10 F10 O20', 'FOO20 F11 O11']

说明:

FOO         # Match FOO
(?:         # Start of non-capturing group:
 (?!\s*FOO) # Assert that we're not right before (whitespace) FOO
 .          # Match any character
)*          # Repeat as needed
>>> import re
>>> re.findall('FOO.*?(?=FOO|$)', "FOO10 F10 O20 FOO20 F11 O11" )
['FOO10 F10 O20 ', 'FOO20 F11 O11']
>>> map(str.strip, re.findall('FOO.*?(?=FOO|$)', "FOO10 F10 O20 FOO20 F11 O11" ))
['FOO10 F10 O20', 'FOO20 F11 O11']

相关问题 更多 >

    热门问题