贪婪的量词是默认的量词。贪婪的量词从输入字符串中尽可能匹配(最长匹配),如果未发生匹配,则它离开最后一个字符并再次匹配。
所有格量词与贪婪量词相似,唯一的区别是它试图匹配最初可能匹配的尽可能多的字符,并且,如果不像贪婪量词那样发生匹配,它就不会回退。
如果将“ +”放在贪婪的量词之后,它将变为所有格量词。以下是所有格限定词的列表-
量词 | 描述 |
---|---|
重新* + | 匹配零个或多个事件。 |
是吗? | 匹配零个或1匹配项。 |
重新++ | 匹配一个或多个事件。 |
重新{n} + | 精确匹配n次出现。 |
re {n,m} + | 至少匹配n个事件,最多匹配m个事件。 |
import java.util.Scanner; import java.util.regex.Matcher; import java.util.regex.Pattern; public class Test { public static void main(String[] args) { Scanner sc = new Scanner(System.in); System.out.println("Enter input text: "); String input = sc.nextLine(); String regex = "[0-9]++"; //创建一个模式对象 Pattern pattern = Pattern.compile(regex); //匹配字符串中的已编译模式 Matcher matcher = pattern.matcher(input); while (matcher.find()) { System.out.print(matcher.group()); System.out.println(); } } }
输出结果
Enter input text: 45678 45678
问题内容: 我有一个像 我需要一个正则表达式给我以下输出: 我努力了 但这给 问题答案: 因此,您想要(+一个整数)后跟任何内容,直到下一个(或字符串结尾),对吗? 然后,您需要告诉正则表达式引擎: 在您的正则表达式中,尽可能匹配-直到字符串结尾的所有内容。另外,您将比赛的第二部分本身做了。 我的解决方案说明:
本文向大家介绍勉强量词Java正则表达式,包括了勉强量词Java正则表达式的使用技巧和注意事项,需要的朋友参考一下 贪婪的量词是默认的量词。贪婪的量词从输入字符串中尽可能匹配(最长匹配),如果未发生匹配,则它离开最后一个字符并再次匹配。 勉强的或非贪婪的量词匹配尽可能少,但如果未发生匹配,则最初的非贪婪的量词将匹配第一个字符,它会从输入字符串中添加另一个字符并尝试进行匹配。 如果您放置“?” 在贪
本文向大家介绍解释Java正则表达式中的量词,包括了解释Java正则表达式中的量词的使用技巧和注意事项,需要的朋友参考一下 如果要在构造正则表达式时指定出现次数,则可以使用量词。下表列出了Java正则表达式支持的量词- 量词 描述 例 回覆* 零次或多次出现。 [0-9] *:匹配0或多个数字。 回覆? 一种或完全没有发生。 [0-9] ?:匹配0或1位数字。 重新+ 一个或多个事件。 [0-9]
问题内容: 我问这个问题有点傻,但是从我读过的所有内容来看,这应该有效,但对我而言却无效。我只是想使用正则表达式匹配字符串中的整个单词。 因此,如果我试图在句子中找到单词“ the”,则对于“褐狐快速越过懒狗”应该返回true,而对于“褐狐快速越过懒狗”则返回false。 。 我已经试过了: 我也尝试过: 我也尝试过此正则表达式:“ \ bthe \ b” 而且它们总是返回false。我觉得我在这
问题内容: 从javadocs: 他们所做的描述是相同的…所以有什么区别? 我真的很感谢一些例子。 我正在用Java进行编码,但是我听到对于大多数现代正则表达式实现来说,这个概念是相同的。 问题答案: 贪婪的运算符总是尝试“抓住”尽可能多的输入,而勉强的量词将匹配尽可能少的输入并仍会创建匹配项。 例:
我正在分析的文本包括捕获组前后以及捕获组内的星号。我确定的解析捕获组的模式基本上是:文本前的连续星号总是至少为30。类似地,最后一个单词后面的连续星号长度至少为15个字符。捕获组中的连续星号始终小于10。我遇到的问题是,我不确定如何给捕获组中的星号和组中的其他字符赋予不同的量词,但将其包含在同一匹配集中。例如: 所以基本上,我只需要捕获文本部分。星号可以存在于实际文本之前和之后(我可以稍后删除),