我的代码:
Pattern pattern = Pattern.compile("a?");
Matcher matcher = pattern.matcher("ababa");
while(matcher.find()){
System.out.println(matcher.start()+"["+matcher.group()+"]"+matcher.end());
}
输出:
0[a]1
1[]1
2[a]3
3[]3
4[a]5
5[]5
我知道的 :
Java API说:
我想知道的是:
该?
是一个贪婪的量词,因此将首先尝试尝试0 occurence之前的1 occurence匹配。在您的字符串中
比这要复杂一些,但这是主要思想。当1次出现次数不匹配时,它将尝试使用0次出现次数。
至于start,end和group的值,它们将是匹配开始,结束和匹配的组的位置,因此在字符串的第一个0匹配项中,您将得到1,1和空字符串。我不确定这是否真的能回答您的问题。
问题内容: 当字符串以数字开头时,我需要匹配,然后是一个点,然后是一个空格和1个或多个大写字符。匹配必须发生在字符串的开头。我有以下字符串。 我尝试过的正则表达式是: 它不匹配。一个有效的正则表达式将对这个问题有什么作用? 问题答案: (对不起,我先前的错误。大脑现在坚定地投入了。嗯,也许。) 这有效: 分解: =字符串开头 =一个或多个数字 (之所以转义,是因为它在字符串中,因此) =文字(或者
问题内容: 我从以下格式的文件中获取输入: 现在,我想在我的Java代码中读取int1,int2,int3和int4。我该如何在Java中使用正则表达式匹配。谢谢。 问题答案: 为了避免空值:
有没有人试图描述与正则表达式匹配的正则表达式? 由于重复的关键字,这个主题几乎不可能在网上找到。 它可能在实际应用程序中不可用,因为支持正则表达式的语言通常具有解析它们的方法,我们可以将其用于验证,以及一种在代码中分隔正则表达式的方法,可用于搜索目的。 但是我仍然想知道匹配所有正则表达式的正则表达式是什么样子的。应该可以写一个。
问题内容: 我想知道正则表达式可以匹配单词,以使单词具有最大长度。例如,如果一个单词的最大长度为10个字符,我希望正则表达式匹配,但是如果长度超过10个,则正则表达式不应匹配。 我试过了 但这仅在单词的最小长度为10个字符时才为我带来匹配。如果单词超过10个字符,它仍然匹配,但仅匹配前10个字符。 问题答案: 我想你要。该单词边界匹配。 当然,您也可以替换和。只要一个字符串的唯一内容,它将匹配最多
问题内容: 我想匹配一个15位数字(作为较大的正则表达式字符串的一部分)。现在,我有 但我觉得必须有一种更清洁的方法来做到这一点。 问题答案: 如果您正则表达式语言是Perl兼容的:。 在不知道要使用此代码段的外部上下文的情况下,很难说出如何处理边缘(因此您不会意外地抓住多余的数字)。最终的上下文无关解决方案是这样的: 您可以将其放在任何正则表达式的中间,它将匹配(并且仅匹配)一个精确的15位数字
我正在尝试构建一个正则表达式,它接受具有以下条件的域名: 允许DNS名称(仅允许连字符、句点和字母数字字符)最多255个字符 连字符只能出现在字母之间 应该以字母开头,以字母结尾。它至少有3个字符(字母和句点必填,连字符可选)。 周期前标签的长度应为63 可能的情况: a、 b.c a-a.b 不该通过的案子 a-b q wert q wert q wert q wert q wert q wer