Java中的正则表达式:如何引用;匹配模式;?
我正在阅读Java正则表达式教程,它似乎只是教我测试模式是否匹配,但没有告诉我如何引用匹配的模式 例如,我有一个字符串“我的名字是xxxxx”。我想打印xxxx。我将如何使用Java正则表达式实现这一点 谢谢。您可以使用以下方法: 输出:Java中的正则表达式:如何引用;匹配模式;?,java,regex,Java,Regex,我正在阅读Java正则表达式教程,它似乎只是教我测试模式是否匹配,但没有告诉我如何引用匹配的模式 例如,我有一个字符串“我的名字是xxxxx”。我想打印xxxx。我将如何使用Java正则表达式实现这一点 谢谢。您可以使用以下方法: 输出: akf *查看注意模式中括号的使用以及Matcher上的group()方法 import java.util.regex.*; public class Example { static public void main(String[] args
akf
*查看注意模式中括号的使用以及
Matcher上的group()
方法
import java.util.regex.*;
public class Example {
static public void main(String[] args) {
Pattern regex = Pattern.compile("My name is (.*)");
String s = "My name is Michael";
Matcher matcher = regex.matcher(s);
if (matcher.matches()) {
System.out.println("original string: " + matcher.group(0));
System.out.println("first group: " + matcher.group(1));
}
}
}
输出为:
original string: My name is Michael
first group: Michael
你在读什么教程?《太阳报》非常彻底地处理了这个话题,但你必须正确阅读:)
捕获字符串的一部分是通过括号完成的。如果要在字符串中捕获组,必须将正则表达式的这一部分放在括号中。这些组是按括号出现的顺序定义的,索引为0的组代表整个字符串
例如,regexp“Day([0-9]+)-Note([0-9]+)”将定义3个组:
- 组(0):整个字符串
- 组(1):regexp中的第一个组,即天数
- 组(2):regexp中的第二组,即注释编号
至于实际代码以及如何检索您在regexp中定义的组,请查看Java文档,特别是Matcher类及其组方法:
您可以使用非常有用的工具测试regexp:
希望这有帮助,
干杯
帕伦人组成了一个捕获群。组0是整个图案,组1是背面参照
上述程序输出:
name is Ross
Ross
我不理解团队的概念。假设我有一个字符串“我的名字是迈克尔·杰克逊,他的名字是巴拉克·奥巴马”。我想拍下“迈克尔·杰克逊”和“巴拉克·奥巴马”。我该怎么做?好的。我得到了它。我得到了另一个更难的答案:xxx xxx xxx xxx(可以是任意数量的单词)是生还是死?我想捕捉:xxxxxx,活着,死去。我该怎么做?
Matcher m = Pattern.compile("name is (.*)").matcher("My name is Ross");
if (m.find()) {
System.out.println(m.group(0));
System.out.println(m.group(1));
}
name is Ross
Ross