java - 重写 RegEx 以在 Java 中使用

标签 java regex

我写了(?<=pp_).*(?=')正则表达式来匹配 pp_ 之后的内容像

这样的字符串

['newPage', 'pp_vii', -1]

我的正则表达式在在线测试器中运行良好(请参阅 online regex validator ),但在 Java 中则不行。我的失败代码:

Pattern pattern = Pattern.compile("(?<=pp_).*(?=')");
String input = "['newPage', 'pp_vii', -1])";
Matcher m = pattern.matcher(input);
boolean match = m.matches(); // false

最佳答案

matches()方法检查完整字符串匹配,因此不要使用 find()检查子序列匹配的方法。最后,您可以使用group()方法获取匹配的子序列字符串。

public static void main(String[] args) {
Pattern pattern = Pattern.compile("(?<=pp_).*(?=')");
String input = "['newPage', 'pp_vii', -1])";
Matcher m = pattern.matcher(input);
boolean a = m.find(); 

if(a){
    String out = m.group();
    System.out.println("Match : " + out);
}

关于java - 重写 RegEx 以在 Java 中使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55090401/

相关文章:

java - 绕过 'Cannot refer to a non-final variable inside an inner class defined'

java - 如何在不终止执行该操作的线程的情况下取消文件上传/下载操作?

java - 将正则表达式与replaceAll一起使用

ruby - 为什么自由间距模式会阻止负面回顾工作?

java - 我如何告诉 Gradle 包含一个本地库 jar,而该库 jar 又具有依赖项?

Java - 使用 Java Desktop 在 Internet Explorer 中打开 URL

java - 类路径资源 [org/springframework/boot/autoconfigure/web/ServerPropertiesAutoConfiguration.class] 无法打开,因为它不存在

Javascript RegExp 量词问题

python - 将文本列拆分为 Pandas 数据框中的列表列,没有明确的拆分序列

javascript - 匹配字符和最大长度的正则表达式