如果标题是相同的姓氏(即Smith Vs Smith或John Vs John等),我需要过滤文件。 我正在将整个文档转换为字符串并根据正则表达式验证该字符串。 任何人都可以帮我写上述案例的正则表达式。
答案 0 :(得分:2)
示例:(\w+) Vs \1
答案 1 :(得分:0)
如果一个人完全理解你的问题:你有一个像这样的字符串“X Vs Y”(其中X和Y是两个名字),你想知道X == Y。
在这种情况下,一个简单的(\ w +)正则表达式可以做到:
String input = "Smith Vs Smith";
// Build the Regex
Pattern p = Pattern.compile("(\\w+)");
Matcher m = p.matcher(input);
// Store the matches in a list
List<String> str = new ArrayList<String>();
while (m.find()) {
if (!m.group().equals("Vs"))
{
str.add(m.group());
}
}
// Test the matches
if (str.size()>1 && str.get(0).equals(str.get(1)))
System.out.println(" The Same ");
else System.out.println(" Not the Same ");
答案 2 :(得分:0)
(\w+).*\1
这意味着:一个包含1个或多个字符的单词,作为第1组签名,后跟任何内容,然后是任何第1组。
更多解释:分组(正则表达式的包围部分)和引用表达式中定义的组(\ 1在此处执行此操作)。
示例:
String s = "Stewie is a good guy. Stewie does no bad things";
s.find("(\\w+).*\\1") // will be true, and group 1 is the duplicated word. (note the additional java escape);