gpt4 book ai didi

Java正则表达式匹配模式并提取它们

转载 作者:行者123 更新时间:2023-11-29 09:40:20 27 4
gpt4 key购买 nike

我尝试使用正则表达式在 Java 中编写一个程序来匹配模式并提取它。给定一个字符串,如“This is a link- #www.google.com# and this is another #google.com#”,我应该能够提取#www.google.com# 和#google.com# 字符串。这是我试过的-

import java.util.regex.Matcher;
import java.util.regex.Pattern;

public class ParseLinks {
public static void main(String[] args) {
String message = "This is a link- #www.google.com# and this is another #google.com#";
Pattern p = Pattern.compile("#.*#");

Matcher matcher = p.matcher(message);

while(matcher.find()) {
String result = matcher.group();
System.out.println(result);
}
}
}

这导致输出 - #www.google.com#,这是另一个 #google.com#。但我想要的只是提取的字符串#www.google.com# 和#google.com#。我可以知道这个的正则表达式吗?

最佳答案

#[^#]+#

虽然仔细想想,井号对于分隔 URL 来说是一个糟糕的选择,原因很明显。

你的不行的原因是星星的贪心(来自regular-expressions.info):

[The star] repeats the previous item zero or more times. Greedy, so as many items as possible will be matched before trying permutations with less matches of the preceding item, up to the point where the preceding item is not matched at all.

关于Java正则表达式匹配模式并提取它们,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1398637/

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