我正在尝试使用正则表达式将字符串1中的所有值18匹配为24-15-7-49-63-2。以前我曾将regex用于一般用途,但我不知道该怎么做。

最佳答案

棘手的是,您无法轻松地使用正则表达式定义范围。但这可能会满足您的要求:

\b([1-9]|1[0-8])\b


您可以在此处查看它的运行情况:http://regexr.com?2v8jj

这是java中的示例:

String text = "24-15-7-49-63-2";
String pattern = "\\b([1-9]|1[0-8])\\b";

Pattern compiledPattern = Pattern.compile(pattern);
Matcher matcher = compiledPattern.matcher(text);
while (matcher.find()) {
    System.out.println(matcher.group());
}


输出:

15
7
2


编辑:
根据注释,您可以使用以下模式获得唯一的匹配项:

\b([1-9]|1[0-8])\b(?!.*\b\1\b.*)


实际上:http://regexr.com?2v8kh

关于java - Java Regex-在号码匹配方面需要帮助,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/8211673/

10-13 09:48