gpt4 book ai didi

java - 为以下模式生成正则表达式

转载 作者:行者123 更新时间:2023-12-01 11:41:11 24 4
gpt4 key购买 nike

构建正则表达式来匹配“${0} 和 ${1} 或 ${2}”

条件

必须有 $ 后跟 {} 大括号,并且只能包含数字 0-9。字符串中只能有一个这样的模式。如果有多个这样的模式,则可以有一个空格,后跟 AND 或 OR。

在 OR 或 AND 之后,应出现相同的 ${} 模式,并且括号之间仅包含数字。

已尝试以下\$\{\d*\} |或 |和|\s+

最佳答案

您需要形成一个不带逻辑正则表达式 OR 运算符的正则表达式来匹配完整的行。

^\$\{\d{1,3}\}(?:\s+(?:and|or)\s+\$\{\d{1,3}\})*$

由于 $ 是正则表达式中的特殊字符,因此您需要对其进行转义才能匹配文字 $ 符号。

DEMO

^\$\{\d{1,3}\}(?:\s+(?:and|or)\s+\$\{\d{1,3}\})+$

这要求 $ 符号之间至少存在一个 andor

DEMO

String s = "${0} and ${1} or ${2}";
System.out.println(s.matches("^\\$\\{\\d{1,3}\\}(?:\\s+(?:and|or)\\s+\\$\\{\\d{1,3}\\})*$"));
// true

关于java - 为以下模式生成正则表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29511688/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com