Java正则表达式打印字
我想打印包含图案的单词。例如,在下面的字符串中,您希望打印agg_day_adv_campaign_demand_fact 您可以简单地将字符串拆分为单词,然后逐个检查单词以搜索您的模式。regex\w*\u fact将完成此操作。Java正则表达式打印字,java,regex,Java,Regex,我想打印包含图案的单词。例如,在下面的字符串中,您希望打印agg_day_adv_campaign_demand_fact 您可以简单地将字符串拆分为单词,然后逐个检查单词以搜索您的模式。regex\w*\u fact将完成此操作。 String text = "FROM dt_dim AS d, "+ "adj_dim AS adj " + "cam_dim AS cam, " +
String text =
"FROM dt_dim AS d, "+
"adj_dim AS adj " +
"cam_dim AS cam, " +
"agg_day_adv_campaign_demand_fact AS fact ";
Pattern FACT_PAT = Pattern.compile("(\\S+_fact)");
Matcher m = FACT_PAT.matcher(text);
if (m.find()){
System.out.println(m.group(1));
}
你可以在这里测试这个正则表达式
您错误地忘记发布您的尝试:我相信您已经按下了“询问问题”按钮,而不是“请求代码”按钮。为了获得建设性的答案,您必须始终向我们展示您自己解决问题的尝试,以及预期和收到的输出/错误消息。谢谢JosefN。上面的代码只打印正则表达式,即。但要求是打印完整的单词。我已经解决了:,很抱歉
String text =
"FROM dt_dim AS d, "+
"adj_dim AS adj " +
"cam_dim AS cam, " +
"agg_day_adv_campaign_demand_fact AS fact ";
Pattern FACT_PAT = Pattern.compile("(\\S+_fact)");
Matcher m = FACT_PAT.matcher(text);
if (m.find()){
System.out.println(m.group(1));
}
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class Main {
public static void main(String[] args) {
String text =
"FROM dt_dim AS d, "+
"adj_dim AS adj " +
"cam_dim AS cam, " +
"agg_day_adv_campaign_demand_fact AS fact ";
Pattern pattern = Pattern.compile("\\w*_fact");
Matcher matcher = pattern.matcher(text);
while (matcher.find()) {
System.out.println("Found the text " + matcher.group()+ "starting at " + matcher.start()
+ " index and ending at index " + matcher.end());
System.out.println(text.substring(matcher.start(), matcher.end()));
}
}
}