Java Regex,提取第二条语句

努诺·费雷拉

我有这种情况,我想提取该字符串表达式的 statement1,但我不是正则表达式方面的专家。

String expression = "blabla if(x = 6, statement1, statement2) blabla";

但 statement1 可以递归地成为另一个 if 表达式,例如:

String expression = "blablaba iF(X = 6, if(X = 3, Z, Y), Y) bablabla";

在这种情况下,我需要提取Z,或者至少if(X = 3, Z, Y)

我是这样做的:

String IF_CONDITION_PATTERN = "[\\s|\\n|\\t]if\\s*\\((.*)\\,(.*)\\,(.*)([^)]*?)";

String formulaStr = "blablaba iF(X = 6, if(X = 3, Z, Y), Y) bablabla";

Pattern pattern = Pattern.compile(IF_CONDITION_PATTERN,
           Pattern.CASE_INSENSITIVE);
Matcher matcher = pattern.matcher(formulaStr);

while (matcher.find()) {
     for(int i=0; i<matcher.groupCount();i++){
           System.out.println("Found " + i + ": " + matcher.group(i) + ".");
        }
    }

结果是:

Found 0:  iF(X = 6, if(X = 3, Z, Y), Y) bablabla.
Found 1: X = 6, if(X = 3, Z.
Found 2:  Y).
Found 3:  Y) bablabla.

有人可以帮我至少提取 statement1 if(X = 3, Z, Y)

谢谢,努诺

天空网

尝试,如果低于你的作品正则表达式,它会匹配statement1Z为您的示例。

正则表达式只查找 if 语句然后匹配不包含,在里面的第二个参数

\bif\([^,]+,\s?([^,]+),[^,]+\)

演示

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

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

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

第二条SQL语句未执行

来自分类Dev

第二条CASE语句导致查询失败?

来自分类Dev

溶解第二条选择语句

来自分类Dev

第二条SQL语句未执行

来自分类Dev

PHP Prepared语句无法准备第二条语句

来自分类Dev

为什么第二条语句不起作用?

来自分类Dev

Python MySQL Connector在游标循环内执行第二条sql语句?

来自分类Dev

如何选择日期列并使用它来驱动第二条SELECT语句?

来自分类Dev

变量作为for循环中的第二条语句如何工作?

来自分类Dev

Python在'IF'之后的第二条语句上不执行任何操作

来自分类Dev

MySQL'union all'不带回第二条select语句的信息

来自分类Dev

我有修改此代码,但不了解if块中的第二条语句

来自分类Dev

获取满足sql查询的第二条记录

来自分类Dev

依赖倒置原则的第二条陈述

来自分类Dev

难以添加第二条路线

来自分类Dev

根据第二条命令的输出触发事件

来自分类Dev

如何添加第二条JSON消息?

来自分类Dev

找不到第二条路线返回页面

来自分类Dev

依赖倒置原则的第二条陈述

来自分类Dev

无法提醒第二条提醒消息

来自分类Dev

为什么只有我的第二条if语句给出结果并覆盖我的第一条if语句?

来自分类Dev

C#循环先循环三遍第一条语句,然后再移至第二条语句

来自分类Dev

无法通过TCP / IP发送第二条消息

来自分类Dev

git rebase squash接收第二条消息(如修正)

来自分类Dev

从存储过程中获取第二条记录集

来自分类Dev

CSS问题将第二条元素放在第一位

来自分类Dev

我无法在我的.htaccess文件中使用第二条重写规则

来自分类Dev

如何使用meteor.js从集合中查找倒数第二条记录?

来自分类Dev

Django-如何获取查询集中的倒数第二条记录?

Related 相关文章

热门标签

归档