Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/amazon-web-services/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何在正则表达式中忽略正向/负向的lookback/lookahead组?_Java_Regex - Fatal编程技术网

Java 如何在正则表达式中忽略正向/负向的lookback/lookahead组?

Java 如何在正则表达式中忽略正向/负向的lookback/lookahead组?,java,regex,Java,Regex,是否有一种简单的方法可以使用另一个正则表达式(考虑括号内的情况)从正则表达式中删除正/负lookback/lookahead组 示例源表达式:A(?R)S(T) 我要删除的部分: ( (?你必须使用与PERL兼容的正则表达式,而不是标准的Java正则表达式,因为它们不支持递归。试试这个:\(\?我终于找到了一个解决方案…不得不做一些开箱思考:-) 下面的代码实现了这个技巧,基本上表现得像PERL的注释组构造(?#…): 使用字符串替换: expression=expression.replac

是否有一种简单的方法可以使用另一个正则表达式(考虑括号内的情况)从正则表达式中删除正/负lookback/lookahead组

示例源表达式:
A(?R)S(T)
我要删除的部分:


  • (?你必须使用与PERL兼容的正则表达式,而不是标准的Java正则表达式,因为它们不支持递归。试试这个:
    \(\?我终于找到了一个解决方案…不得不做一些开箱思考:-)

    下面的代码实现了这个技巧,基本上表现得像PERL的注释组构造
    (?#…)

    使用字符串替换:


    expression=expression.replace(“(?”).replace(“(?”)”)(?我会编写或使用解析器——当您可以任意嵌套paren时,堆栈是很有用的,因为正则表达式不能存储状态。如果您确实使用正则表达式,则需要递归的。这比dupe目标建议的要困难一些,因为您需要省略转义子字符串,如
    \(
    和其他边缘情况,但它应该给你一个起点。@ggorlen Recusion似乎很有希望,直到我发现它在Java中不可用为止。:-(你知道有任何活动的/最近的perl兼容的Java正则表达式库吗?(我在Android Studio中开发,所以我在使用Java方面没有太多选择)您可能会发现这些答案很有帮助:或者。