Python正则表达式匹配字符串或空格的开头

时间:2014-01-19 19:08:02

标签: python regex string

我有以下字符串

'abc[123]defgh ijk[456]lm no[78] pq'

我想提取字符串开头和[之间或空白和[之间的所有部分。对于给定的字符串,这些是'abc''ijk''no'部分。

我有以下表达式

exp = re.compile(r'\s(.*?)\[')

但我无法弄清楚如何将字符串的开头添加为可选表达式。我如何编写表达式来涵盖这两种情况?

2 个答案:

答案 0 :(得分:6)

尝试这种模式:

(?:^|\s)(.*?)\[

起始锚点(^)匹配字符串的开头(或MULTILINE模式中的行)。

答案 1 :(得分:1)

另一个:在找到起始字符后,查找不是[的所有内容,并确保其后跟一个[

(?:^|\s)([^\[]+)(?=\[)
相关问题