gpt4 book ai didi

java - 重叠正则表达式

转载 作者:搜寻专家 更新时间:2023-11-01 01:54:06 25 4
gpt4 key购买 nike

我发现了一个类似的问题here .但是我没有让它工作:

我有一个像“my_token_string”这样的字符串,需要一个正则表达式来返回标记“my_”、“_token_”和“_string”。

请注意,我无法更改 Java 代码,因为它是另一个软件的一部分。我唯一能做的就是指定要捕获的模式和组:-)

这是我测试过的:

String p = "(?=(_[^_]*_?))";
int group = 1;
String test = "my_token_string";

Matcher m = Pattern.compile(p).matcher(test);
while (m.find()) {
System.out.println(m.group(group));
}

当然这只会返回标记“_token_”和“_string”。

最佳答案

您可以尝试使用 "(?=((^|_).+?(_|$)))"。作为组号使用 1

它会让 token 以 _ 或输入开始 (^) 开始,并以 _ 或输入结束 ( >$).您可以使用 [^_]+ 而不是 .+? 但我更喜欢这个版本。

关于java - 重叠正则表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15550219/

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