gpt4 book ai didi

Java Regex 接受限定符中的任何内容

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

我需要一些棘手的 java 正则表达式模式来实现以下目标。

接受限定符说“$$”的任何内容,大部分工作如下所示:

Pattern rc = Pattern.compile("[\\$\\$].*[\\$\\$]");

这将接受如下字符串:"$$ANYTHING$$""$$A$@#$@NYTHING!!!$$"

但是我想禁止:$$abc$$xyz$$ 因为它在中间包含 "$$"!请告诉我实现这一目标的方法。另外 $$$$xyz$$$$xyz$$$$ 应该被拒绝

最佳答案

^\\$\\$(?:(?!\\$\\$).)*\\$\\$$

只需添加 anchor 和 nagtive 前瞻以确保 $$ 不在中间。

查看演示。

https://regex101.com/r/sH8aR8/8

你的正则表达式的问题是 [\\$\\$] 将只接受一次 $ 因为它在字符类中并且没有 ^$ 它不会严格限制边界。而且 .* 会接受任何东西,这就是为什么你的第二个 $ 被接受的原因。

(?:(?!\\$\\$).)* 确保 $$ 不会出现在两者之间。

编辑:

如果 $ 的计数不固定使用

^\\$+(?:(?!\\$).)*\\$+$

关于Java Regex 接受限定符中的任何内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27814063/

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