【问题标题】:Python regex to match begin of string or whitespacePython正则表达式匹配字符串或空格的开头
【发布时间】:2014-01-19 19:08:01
【问题描述】:

我有以下字符串

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

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

我有下面的表达方式

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

但我不知道如何将字符串的开头添加为可选表达式。如何编写表达式来涵盖这两种情况?

【问题讨论】:

    标签: python regex string


    【解决方案1】:

    试试这个模式:

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

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

    【讨论】:

    • 谢谢,这行得通,在查看文档后,我也理解了语法:-)
    【解决方案2】:

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

    (?:^|\s)([^\[]+)(?=\[)
    

    【讨论】:

      猜你喜欢
      • 2022-01-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-12-25
      • 2019-10-15
      • 2021-07-04
      相关资源
      最近更新 更多