Regex 为模式建议正则表达式
我这里的脚本有多个“(“and”)”: 我想使用java.util.regex.Pattern来获取这个脚本的条件。我想要的结果是:Regex 为模式建议正则表达式,regex,Regex,我这里的脚本有多个“(“and”)”: 我想使用java.util.regex.Pattern来获取这个脚本的条件。我想要的结果是: 如果(a==b&&a==c) 其他((a==b)和&(a!=c)) 其他((a!=b)和&(a!=c)) 我使用了: Pattern=Pattern.compile((#if |#elseif)+(.*)(([^)]{1,})); 但结果并非预期。请帮我看一下这里的正则表达式。 非常感谢。不幸的是,Java不支持递归,因此无法正确匹配平衡括号中的组。如果
- 如果(a==b&&a==c)
- 其他((a==b)和&(a!=c))
- 其他((a!=b)和&(a!=c))
非常感谢。不幸的是,Java不支持递归,因此无法正确匹配平衡括号中的组。如果不希望If/elseif条件后的零件包含括号,可以使用以下解决方法:
(?m)^#(?:if|elseif).*? (?!.*[()])(.+)
不幸的是,Java不支持递归,因此无法正确匹配平衡括号组。如果不希望If/elseif条件后的零件包含括号,可以使用以下解决方法:
(?m)^#(?:if|elseif).*? (?!.*[()])(.+)
试试这个正则表达式:
(?:if | elseif)\s*\(?:[^()]+\)\124?\(?:\ s*\)+)
说明:
-匹配(?:if | elseif)
或if
elseif
-匹配0多次出现的空白字符\s*
-匹配既不是[^()]+\)
也不是(
的任何字符的1+次出现次数。然后是匹配的)
)
-或|
-使用嵌套括号处理大小写*?\)(?:\s*\)+
()
(?:if | elseif)\s*\(?:[^()]+\)\124?\(?:\ s*\)+)
说明:
-匹配(?:if | elseif)
或if
elseif
-匹配0多次出现的空白字符\s*
-匹配既不是[^()]+\)
也不是(
的任何字符的1+次出现次数。然后是匹配的)
)
-或|
-使用嵌套括号处理大小写*?\)(?:\s*\)+
()
如果
If
或elseif
语句仅限于一行,那么您可能可以尝试类似的操作。@Gurman谢谢,但我使用Java运行,这不是预期的。我正在使用此工具并在我的应用程序上运行。什么脚本?在Regextest中,它的工作原理如图所示。哦,我没有看到更新的问题。我的错。试试这个(?:if | elseif)\s*\([^()]+\).*?\(?:\s*)+)
?如果if
或elseif
语句被限制在一行,那么可能你可以尝试类似的东西。@Gurman谢谢你,但我用Java运行时它并没有预期的效果。我正在使用此工具并在我的应用程序上运行。什么脚本?在Regextest中,它的工作原理如图所示。哦,我没有看到更新的问题。我的错。试试这个(?:if | elseif)\s*\([^()]+\)\.*?\)(?:\s*)+)
?谢谢你的回答,但我认为你的表达式适用于PHP,我已经改为Javascript它不适用于你在原始问题中提到的“java.util.regex.Pattern”-你没有使用java吗?当然,Java和Javascript是不同的,它们支持的regex风格也是不同的。我使用Java for Android,我总是使用Javascript表达式来测试这种模式。请建议使用Java的表达式。谢谢。这是这个的Java表达式。与其在不兼容的味道上测试它,不如在实际应用程序中试用它。我已经在我的应用程序上试用过了,但它出现了错误:“正则表达式”(“m”)^(“if”;“elseif”)\((\(((?)\)*)(。+)“”的格式不正确:未知的内联修饰符少…(Ctrl+F1)“谢谢你的回答,但我认为你的表达式适用于PHP,我已经改为Javascript它不工作了,您在最初的问题中提到使用“java.util.regex.Pattern”——您没有使用java吗?当然,Java和Javascript是不同的,它们支持的regex风格也是不同的。我使用Java for Android,我总是使用Javascript表达式来测试这种模式。请建议使用Java的表达式。谢谢。这是这个的Java表达式。与其在不兼容的味道上测试它,不如在实际应用中尝试一下。我已经在我的应用程序上尝试过了,但它出现了错误:“正则表达式”?“m”^(?:if ^ elseif)\(\((?))*)(.+)“'格式错误:未知的内联修饰符少…(Ctrl+F1)“Hi@Gurman与上面相同的正则表达式,在这种情况下,它不工作regextester:#if({plan:tag}==“(Good]”)Good#elseif(!({plan:tag}==“(Bad)”)这是意料之中的。请再次帮助我。谢谢。是的,我明白了,所以我想我们可能无法在这种情况下使用regex,你是否这样认为:)@BenJima你是正确的。你可以取消选择它作为答案。如果我想出一个更好的表达式,我会再联系你(可能在工作后).我只为您在问题中提到的示例创建了一个正则表达式Yes,thank you@Gurman我将在等待您的过程中尝试找到解决方案:D@BenJima我希望这就是你想要的。注意:只有在if或elseif条件中放置了一个#
时,这才会失败。在本例中,Hi@Gurman使用上面相同的正则表达式,它不工作regextest:#if({plan:tag}==“(Good]”)Good#elseif(!({plan:tag}==“(Bad)”)不是预期的。请再次帮助我。谢谢。是的,我明白了,所以我想我们可能不能在这个案例中使用正则表达式,你这样认为吗:)@BenJima你是对的。你可以取消选择它作为答案。如果我想出一个更好的表达式,我会给你回复的(可能在下班后).我只为您在问题中提到的示例创建了一个正则表达式Yes,thank you@Gurman我将在等待您的过程中尝试找到解决方案:D@BenJima我希望这就是您想要的。注意:只有在if或elseif条件中放置了#
时,此操作才会失败。