java - 正则表达式模式 - 仅提取由连字符分隔的字符串

标签 java regex

我查看了其他问题,但它们没有让我找到答案。

我有这个代码:

Pattern p = Pattern.compile("exp_(\\d{1}-\\d)-(\\d+)");

我想要匹配的字符串是:exp_5-22-718

我想提取 5-22718。我不太确定为什么它不起作用我错过了什么?非常感谢

最佳答案

试试这个:

Pattern p = Pattern.compile("exp_(\\d-\\d+)-(\\d+)");

在您的原始模式中,您指定第二个数字应包含一位数字,因此我输入 \d+ 来匹配尽可能多的数字。 此外,我从第一个数字定义中删除了 {1},因为它不会为正则表达式添加值。

关于java - 正则表达式模式 - 仅提取由连字符分隔的字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13686799/

相关文章:

java - 读取包含括号的文件中的整数值

java - 如何解决 "java.net.BindException: Address already in use: JVM_Bind"错误?

java - Java 和 vb.net 中的 SHA-256 不同值

java - 为什么我的正则表达式在 android 的短信接收器上没有被正确解析?

python - python 正则表达式和选择列的建议

python - 用 re.sub 列表中的元素替换?

java - 交换字符串中的两个字母

java - 需要帮助理解/使用扫描仪 hasNextInt()

java - Eclipse:同时替换多个不同的正则表达式

javascript - 使用原型(prototype) js 库进行 Href url 匹配