java - 正则表达式引用 Java

标签 java regex

我有一个字符串和一个正则表达式。

字符串看起来像DH18

我有我的正则表达式 ([a-zA-Z]*)([0-9]*) 它将字母和单词分开

我只想要数字,所以它包含在第二个大括号中。我该如何引用它。

我想要这样的声明

if ($1 == 18)
   blah;

最佳答案

您可以对不需要的部分使用非捕获组或后视:

(?:[a-zA-Z]*)([0-9]*)  // Non-capturing group
(?<=[a-zA-Z]*)([0-9]*) // Lookbehind

请注意,正则表达式仅将组作为字符串返回,即使该组代表一个数字也是如此。因此,检查$1 == 18需要使用equals():

if (matcher.group(1).equals("18")) {
    ...
}

关于java - 正则表达式引用 Java,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20495144/

相关文章:

java - 我应该在抛出异常之前使用 Thread.currentThread.interrupt() 吗?

Java Regex 从 HTML anchor (<a>...</a>) 标签获取文本

Python密码验证: Unable to use constants from string library in regex

java - 从内部类的实例访问外部类属性

regex - 不包含101的正则表达式

c# - 正则表达式 选择 [A-Z ] 除了两个连续空格

javascript - 返回第一次出现的正则表达式不匹配

java - 当从下拉框中选择相应的对象 ID 时,如何在模型中设置对象引用

java - Spring MVC - 请求语法不正确

java - Android GPS不正确的查询位置数据