gpt4 book ai didi

java - 正则表达式 - 如何确保只有 1 个字符实例出现在两个字符之间或从开始到某个字符

转载 作者:行者123 更新时间:2023-11-30 07:42:18 25 4
gpt4 key购买 nike

我想确保只有 1 个 comaa 出现在括号之前。括号是必须的。我需要确保所有字符串都与模式匹配。正则表达式匹配器不能是子字符串。

例子;

 Mert,sert , abc() = not valid
Mert, asd( = valid
Mert , asd,( = not valid
Mert , asd = not valid

我试过了这个,你能解释一下为什么它不起作用吗?谢谢

.+,[^,]+\(.+

最佳答案

你可以使用

^[^,(]*,[^,(]*\(.*

参见 regex demo

在 Java 中,使用

Boolean result = s.matches("[^,(]*,[^,(]*\\(.*");

或者,如果可以有换行符,s.matches("(?s)[^,(]*,[^,(]*\\(.*").

详情

  • ^ - 字符串的开始(在 String#matches 中不是必需的)
  • [^,(]* - 除逗号和左括号外的 0 个或多个字符
  • , - 逗号
  • [^,(]* - 除逗号和左括号外的 0 个或多个字符
  • \( - 左括号
  • .* - 行/字符串的其余部分(使用 (?s))。

关于java - 正则表达式 - 如何确保只有 1 个字符实例出现在两个字符之间或从开始到某个字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54928740/

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