我试图使用scanner.next(Pattern p)方法来挑选出一个大的文本文件的部分,该文本文件以bob开头并以单词结尾吉姆。例如:Java正则表达式,匹配段落以x开头,以y结尾
hello hello jimbob jimhellohellobob hellojim hellobob
将next()
三次,然后返回"jimbob"
,"jimhellohellobob"
,和"jim hellobob"
但优选不"jimbob jimhellohellobob hellojim hellobob"
即它排除在开始和结束之间所允许的文本单词'吉姆。
我很喜欢Regex,更不用说Java正则表达式,所以我没有太多的运气。这是我目前的位置:
String test = "hello hello jimbob jimhellohellobob hellojim hellobob ";
Pattern p = Pattern.compile(".*jim.*bob.*");
Scanner s = new Scanner(test);
String temp;
while(s.hasNext(p)){
temp = s.next(p);
System.out.println(temp);
}
这不是打印出来的东西。任何想法,我要去错了吗?
一个单词通常是指由空格分隔的字符序列。在你的例子中'jim'和'bob'不是单词,而是字符序列(即它们不需要在单词边界上,请更新你的问题,用_character sequence_替换单词_word_。 –