java - 检查自定义字符串模式

标签 java regex

我想像那样检查 =SUM(A1:A10) 的自定义模式。 A1A10 的位置可以更改,但其他位置是固定的。我尝试了以下代码:

import java.util.regex.Matcher;
import java.util.regex.Pattern;

public class test {
    public static void main(String[] args) {
        Pattern pattern=Pattern.compile("SUM[(][A-T][1-20][:][A-T][1-20][)]");
        Matcher m=pattern.matcher("SUM(A9:A1)");
        System.out.println(m.matches());
    }
}

但是不行。请帮助我!

最佳答案

[1-20] 之类的模式与您认为的不符。它不匹配 1 到 20 之间的数字,而是匹配 1、2 和 0。要匹配 1-20,请使用 ([1-9]|1\d|20) :备选方案的第一部分匹配 10 以下的数字,第二部分匹配范围 10-19,第三部分匹配 20。

关于java - 检查自定义字符串模式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18534356/

相关文章:

java - Guava LoadingCache getAll - 但没有任何参数?

java - spring-ws 获取用户名和密码

python - 在Python中使用正则表达式来匹配单词

regex - 导入包含逗号、千位分隔符和尾随减号的 CSV 数据

regex - 平均正则表达式算法的时间复杂度是多少?

java - 如何在调用 LDAP 之前设置 Spring Security MD5 密码

java - 适用于 Android 的 Google 跟踪代码管理器 NullPointerException

java - Java 中 PHP 的 strtotime()

regex - Vim-substitute 命令插入重复项

正则表达式匹配任何字符或不匹配任何字符,除了给定的异常(exception)情况