假设我有一个位于较大字符串中的以下子字符串:
我的名字是
{name}
{name}
只是一个占位符,因为每次运行程序时它可能都不同。例如:
运行#1:您好,我的名字是 Phil!很高兴见到您。
运行#2:我的名字是 Robert ,我真的很酷。
我怎样才能(以最简洁的方式):
My name is {name}
子字符串? (不区分大小写){name}
部分提取到一个单独的变量中,我可以用它做什么?答案 0 :(得分:2)
你可以这样做:
String s = "Hi there! My name is Phil. Nice to meet you.";
Pattern p = Pattern.compile("my name is (\\w*)", Pattern.CASE_INSENSITIVE);
Matcher m = p.matcher(s);
if (m.find()) {
System.out.println(m.group(1));
} else {
System.out.println("No match to " + s);
}
(\\w*)
创建一个包含所有"字符"的捕获组。可以在Pattern
和Matcher
的文档中找到更多信息。
P.S。通过所有编辑很难跟踪您的要求。我希望这符合你的需要。如果没有,修改它应该相当简单。