java - 匹配字符串的模式

标签 java regex pattern-matching

我正在尝试创建一个 java.util.regex.Pattern 来匹配类似于以下内容的字符串:

Unexpected ID 'foo_<some_number>': ERR-125:"IDs": invalid id

所以我认为模式应该是这样的:

Pattern.compile("Unexpected ID 'foo_*': ERR-125:\"IDs\": invalid id");

但这没有用。 谁能告诉我为什么它不起作用?我应该做什么?

谢谢

最佳答案

您的模式中的问题是您在下划线上使用了0个或更多(贪婪)量词。

试试这个:

String input = "Unexpected ID 'foo_1': ERR-125:\"IDs\": invalid id";
//                                                   | any digit
//                                                   |  | once or more (greedy)
System.out.println(input.matches("Unexpected ID 'foo_\\d+': ERR-125:\"IDs\": invalid id"));

输出

true

关于java - 匹配字符串的模式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22381839/

相关文章:

java - 如何在 Java 中启动一个新的 OpenStack 实例?

F# 对包含记录的可辨别联合进行模式匹配

java - 如何用新字符替换字符串中的第 n 个字符?

java - 为什么可以在 java 中使用 java.security.SecurityManager 读取任何文件?

java - 通过 PDFBox 从 PDF 文件中提取时具有黑色背景(或全白)的 Jpg

regex - 连接两个字符串,以便合并它们的公共(public)后缀和前缀

Python + 正则表达式 + 将模式替换为该模式的多个副本

javascript - 零到多个范围的正则表达式,例如 : "[12,128]"/ "[45,545][7445,78656]"

haskell - 检查字符串是否由平衡括号组成

c# - 字符串上的模式匹配