在括号之间的数据中提取字符串忽略内部括号正则表达式python

阿尼鲁德班迪

样本输入

 a = '(abc) * (j+2) * (abs(k)) * (log(sum(l)))'

样本输出

['abc','j+2','abs(k)','log(sum(l))']

我试过用这个

g = re.findall(r'\((.+?)\)',a)

我得到的输出

['abc', 'j+2', 'abs(k', 'log(sum(l']

我不知道如何让它跳过所有嵌套的括号

编辑 1:我想使用 split 方法很容易,但出于好奇如何使用正则表达式来完成?

卡米尔·贾萨尼

如果您可以假设只有在第一级括号之后才会有空格,那么这将起作用:

\((.+?)\)(?= )

这个正则表达式的作用是除非匹配后有一个空格,否则它不接受它。

另一种可能性是,如果您假设内括号后面总是有另一个右括号。在这种情况下,以下将起作用:

\((.+?)\)(?!\))

这样做的目的是确保比赛结束后没有右括号。

但是,这两种方法都做出了一些可能不正确的假设。如果是这种情况,那么用普通的正则表达式是不可能做到的。
参考这个问题:可以使用正则表达式匹配嵌套模式吗?

不可能的原因是正则表达式基于有限状态自动机。它们是有限的,它们唯一的“记忆”就是它们所处的状态。这意味着要计算嵌套括号的数量,您需要足够的状态来存储嵌套括号的数量。如果没有限制,您可以有一个无限的数字,这与基本概念背道而驰。

然而,一些正则表达式实现已经开始包含递归表达式,这将解决这个问题,例如 PCRE,PHP 的正则表达式引擎。http://php.net/manual/en/regexp.reference.recursive.php

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

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

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

正则表达式,提取字符串不在两个括号之间

来自分类Dev

正则表达式提取字符串末尾括号之间的数字

来自分类Dev

正则表达式:python 在括号之间获取字符串

来自分类Dev

在大熊猫中使用正则表达式从多个括号中提取字符串

来自分类Dev

正则表达式模式在花括号之间获取字符串

来自分类Dev

Powershell正则表达式从日志文件中的行中提取圆括号之间的字符串

来自分类Dev

在python正则表达式中提取字符串的子字符串

来自分类Dev

除了括号内,如何使用Python中的正则表达式从字符串中提取数字?

来自分类Dev

正则表达式提取2个花括号之间的字符串

来自分类Dev

如何在括号正则表达式内的括号外获取字符串

来自分类Dev

正则表达式模式提取大括号之间的字符串,并排除大括号

来自分类Dev

正则表达式提取字符串之间的数据

来自分类Dev

在Java正则表达式中提取字符串和其他字符串之间的数字

来自分类Dev

在Java正则表达式中提取字符串和其他字符串之间的数字

来自分类Dev

在字符串python正则表达式中的括号之间找到给定的单词

来自分类Dev

正则表达式忽略括号之间的数据

来自分类Dev

正则表达式忽略括号之间的数据

来自分类Dev

使用正则表达式查找括号(包括括号)之间的特定字符串

来自分类Dev

正则表达式匹配括号和逗号之间的字符串,但存在多个括号

来自分类Dev

正则表达式:从字符串中提取字符串

来自分类Dev

PHP /正则表达式:从字符串中提取字符串

来自分类Dev

正则表达式:从字符串中提取字符串

来自分类Dev

在字符串正则表达式busybox之间提取字符串

来自分类Dev

通过正则表达式提取字符串之间的特定字符串

来自分类Dev

如何在python中使用正则表达式从括号中获取字符串

来自分类Dev

正则表达式:查找大括号之间的字符串,大括号本身包含大括号

来自分类Dev

在python中使用正则表达式从大字符串中提取字符串列表

来自分类Dev

从字符串中提取字符(正则表达式)

来自分类Dev

从仅与正则表达式模式匹配的字符串中提取字符

Related 相关文章

  1. 1

    正则表达式,提取字符串不在两个括号之间

  2. 2

    正则表达式提取字符串末尾括号之间的数字

  3. 3

    正则表达式:python 在括号之间获取字符串

  4. 4

    在大熊猫中使用正则表达式从多个括号中提取字符串

  5. 5

    正则表达式模式在花括号之间获取字符串

  6. 6

    Powershell正则表达式从日志文件中的行中提取圆括号之间的字符串

  7. 7

    在python正则表达式中提取字符串的子字符串

  8. 8

    除了括号内,如何使用Python中的正则表达式从字符串中提取数字?

  9. 9

    正则表达式提取2个花括号之间的字符串

  10. 10

    如何在括号正则表达式内的括号外获取字符串

  11. 11

    正则表达式模式提取大括号之间的字符串,并排除大括号

  12. 12

    正则表达式提取字符串之间的数据

  13. 13

    在Java正则表达式中提取字符串和其他字符串之间的数字

  14. 14

    在Java正则表达式中提取字符串和其他字符串之间的数字

  15. 15

    在字符串python正则表达式中的括号之间找到给定的单词

  16. 16

    正则表达式忽略括号之间的数据

  17. 17

    正则表达式忽略括号之间的数据

  18. 18

    使用正则表达式查找括号(包括括号)之间的特定字符串

  19. 19

    正则表达式匹配括号和逗号之间的字符串,但存在多个括号

  20. 20

    正则表达式:从字符串中提取字符串

  21. 21

    PHP /正则表达式:从字符串中提取字符串

  22. 22

    正则表达式:从字符串中提取字符串

  23. 23

    在字符串正则表达式busybox之间提取字符串

  24. 24

    通过正则表达式提取字符串之间的特定字符串

  25. 25

    如何在python中使用正则表达式从括号中获取字符串

  26. 26

    正则表达式:查找大括号之间的字符串,大括号本身包含大括号

  27. 27

    在python中使用正则表达式从大字符串中提取字符串列表

  28. 28

    从字符串中提取字符(正则表达式)

  29. 29

    从仅与正则表达式模式匹配的字符串中提取字符

热门标签

归档