我正在尝试使用正则表达式将字符串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/