在括号之间的数据中提取字符串忽略内部括号正则表达式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

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

来自分类Dev

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

来自分类Dev

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

来自分类Dev

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

来自分类Dev

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

来自分类Dev

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

来自分类Dev

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

来自分类Dev

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

来自分类Dev

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

来自分类Dev

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

来自分类Dev

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

来自分类Dev

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

来自分类Dev

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

来自分类Dev

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

来自分类Dev

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

来自分类Dev

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

来自分类Dev

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

来自分类Dev

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

来自分类Dev

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

来自分类Dev

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

来自分类Dev

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

来自分类Dev

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

来自分类Dev

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

来自分类Dev

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

来自分类Dev

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

来自分类Dev

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

来自分类Dev

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

来自分类Dev

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

Related 相关文章

  1. 1

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

  2. 2

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

  3. 3

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

  4. 4

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

  5. 5

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

  6. 6

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

  7. 7

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

  8. 8

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

  9. 9

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

  10. 10

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

  11. 11

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

  12. 12

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

  13. 13

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

  14. 14

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

  15. 15

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

  16. 16

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

  17. 17

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

  18. 18

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

  19. 19

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

  20. 20

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

  21. 21

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

  22. 22

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

  23. 23

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

  24. 24

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

  25. 25

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

  26. 26

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

  27. 27

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

  28. 28

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

  29. 29

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

热门标签

归档