编写一个过程loadDocument(String name)
,它将在每行搜索链接后加载并分析行。链接格式如下:5个字符link=
(可以是大写和小写混合字母),之后是正确的标识符。正确的标识符从字母(小写或大写)开始,后跟零个或多个字母、数字或下划线uuu
。程序必须打印后续标识符,每一个都在单独的行中。在打印之前,必须将标识符更改为小写字母。文档以带有文本eod
的行结尾,这意味着文档结束。
我的代码:
public static void loadDocument(String name, Scanner scan) {
while(scan.hasNext()) {
String line = scan.nextLine();
if(line.equals("eod")) {
return;
}
else if(line.matches("link="+name) && correctLink(name)) {
String identifier = name.toLowerCase();
System.out.println(identifier);
}
else
continue;
}
}
// accepted only small letters, capital letter, digits and '_' (but not on the begin)
public static boolean correctLink(String link) {
if(link.matches("^[a-zA-Z]+[0]+||[0-9]+||_"))
return true;
else
return false;
}
如何写如果行等于link=
,返回link=
之后的任何内容?我的问题在这个代码中:
else if(line.matches("link="+name) && correctLink(name)) {
String identifier = name.toLowerCase();
System.out.println(identifier);
}
例如,如果输入是link=abc
,我希望它打印abc
。
下面是一个例子来解释这一切:
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class Example {
public static void main(String[] args) {
final String regex = "link=(.*)";
final String string = "link=sdfgubvcyx";
final Pattern pattern = Pattern.compile(regex, Pattern.MULTILINE);
final Matcher matcher = pattern.matcher(string);
while (matcher.find()) {
System.out.println("Full match: " + matcher.group(0));
for (int i = 1; i <= matcher.groupCount(); i++) {
System.out.println("Group " + i + ": " + matcher.group(i));
}
}
}
}
regex
——文本链接=
,后面是由任意字符组合(任意字符甚至空格等)组成的组字符串
-只是我的测试字符串模式
——编译后的正则表达式matcher
——我的测试字符串的已编译正则表达式中的匹配器匹配器。组(0)
——完全匹配匹配器。组(1)
-第一组的匹配项(这是您正在寻找的)
你可以用两行文字来表达,但我认为这更清楚了:)
我试图创建一个java程序,它可以读取一个名为file1.txt的文件,存储它的字符串,并将这些字符串搜索到另一个名为file2.txt的文件,如果没有找到匹配,则从file1.txt打印特定的字符串。 现在我可以从file1.txt获得数据,但无法搜索file1的数据,例如在file2.txt中搜索单词“home” 请看这里的file1.txt包含Homee,而file2.txt有Home,所以
问题内容: 我已经开始使用LPTHW学习Python,并且开始练习16: http://learnpythonthehardway.org/book/ex16.html 并且觉得自己是个白痴,因为我无法弄清楚看似简单的“额外功劳”分配之一,但需要以下条件: 压缩为一行代码。我尝试了以下一些方法: 要么: 要么: 我只是无法让它在同一行中重写line1,line2和line3字符串。而且,我尝试了各
问题内容: 我正在尝试编写一个angularjs自定义过滤器,以检查国家/地区数组是否包含用户输入的搜索字符串。 该字符串可以包含一个字母(例如“ E”)或n个字母的片段(例如“ lan”)或整个单词(例如“ England”)。 在每种情况下,都应返回包含该字母或该片段的所有国家,因此“ E”将返回“ England”,“爱沙尼亚”等,而“ lan”将返回“ England”,“ Ireland
我必须定义一个包含大写方法的Translator类。该方法将收到一个StringBuffer,它只包含英文字母和空格,并将更改它,以便每个单词都以大写字母开头。 //我需要定义的类
问题内容: 如何以 不区分大小写的 方式在文件中搜索单词? 例如 如果我正在文件中搜索,如果文件包含更新,则搜索应将其选中并将其视为匹配项。 问题答案: 可以在忽略大小写的情况下检查两个字符串是否相等。它甚至可以与Unicode一起使用。有关更多信息,请参见http://golang.org/pkg/strings/#EqualFold。 http://play.golang.org/p/KDdI
我想弄清楚如何获取这些行并打印出来