我查看了其他问题,但它们没有让我找到答案。
我有这个代码:
Pattern p = Pattern.compile("exp_(\\d{1}-\\d)-(\\d+)");
我想要匹配的字符串是:exp_5-22-718
我想提取 5-22
和 718
。我不太确定为什么它不起作用我错过了什么?非常感谢
最佳答案
试试这个:
Pattern p = Pattern.compile("exp_(\\d-\\d+)-(\\d+)");
在您的原始模式中,您指定第二个数字应包含一位数字,因此我输入 \d+
来匹配尽可能多的数字。
此外,我从第一个数字定义中删除了 {1}
,因为它不会为正则表达式添加值。
关于java - 正则表达式模式 - 仅提取由连字符分隔的字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13686799/