Python正则表达式,捕获不特定的组

镰刀

考虑以下示例字符串:

abc1235abc53abcXX

123abc098YXabc

我想捕获发生在 abc 之间的组,

例如,我应该得到以下组:

1235, 53, XX
123, 098YX

我正在尝试这个正则表达式,但不知何故它没有捕获中间文本:

(abc(.*?))+

我究竟做错了什么?

编辑:我需要使用正则表达式来完成,没有字符串拆分,因为我需要对捕获的组应用进一步的规则。

罗曼·佩雷克雷斯特

re.findall() 具有特定正则表达式模式的方法:

import re

strings = ['abc1235abc53abcXX', '123abc098YXabc']
pat = re.compile(r'(?:abc|^)(.+?)(?=abc|$)')    # prepared pattern

for s in strings:
    items = pat.findall(s)
    print(items)
    # further processing

输出:

['1235', '53', 'XX']
['123', '098YX']

  • (?:abc|^)- 未捕获的组以匹配abc子字符串或字符串的开头 ^
  • (.+?) - 捕获组以尽可能少地匹配任何字符序列
  • (?=abc|$)- 前瞻肯定断言,确保前一个匹配项后跟字符串的任一abc序列或结尾 $

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

简单 JSON、特定捕获组的正则表达式?

来自分类Dev

正则表达式:捕获组?

来自分类Dev

正则表达式,捕获组

来自分类Dev

正则表达式捕获组

来自分类Dev

Python正则表达式子组捕获

来自分类Dev

Python正则表达式findall捕获重复的组

来自分类Dev

python正则表达式搜索findall捕获组

来自分类Dev

Python捕获组并用正则表达式引用

来自分类Dev

Python正则表达式返回非捕获组

来自分类Dev

Python正则表达式捕获组问题

来自分类Dev

Python捕获组并用正则表达式引用

来自分类Dev

python正则表达式多个可选捕获组

来自分类Dev

Python正则表达式可选捕获组或lastindex

来自分类Dev

正则表达式:捕获组中的捕获组

来自分类Dev

捕获组中的正则表达式捕获组

来自分类Dev

使用Python正则表达式在非捕获组中的多个捕获组

来自分类Dev

重复正则表达式捕获组的捕获部分

来自分类Dev

从正则表达式捕获python

来自分类Dev

Python正则表达式组

来自分类Dev

Python正则表达式组

来自分类Dev

Python正则表达式捕获组不适用于简单表达

来自分类Dev

正则表达式:如何指定捕获的组应包含特定词

来自分类Dev

是否可以选择特定的正则表达式捕获组以在Pandas中创建列?

来自分类Dev

在捕获的组正则表达式上修剪空间

来自分类Dev

正则表达式非捕获组-没用吗?

来自分类Dev

正则表达式非捕获组ins Scala

来自分类Dev

正则表达式中捕获组的奇怪行为

来自分类Dev

PHP正则表达式和相邻捕获组

来自分类Dev

复杂正则表达式与捕获组匹配