在 java 中被其他文本包围时查找模式



我有一个正则表达式,可以找到某种模式。这在文本被隔离时有效。但是,我希望它在被其他文本包围时起作用,并以某种方式从那里提取它。这是我想出的模式。一个例子是,如果 9708/32/M/J/15 是文本,它会找到它。但如果它是awfawf9708/32/M/J/15awfafwaf,则找不到它。

Pattern pattern = Pattern.compile("^\d{4}/\d{2}/\w/\w/\d{2}$");

如何修改此设置以使其在两种情况下都有效?

^ 断言字符串的开头。 $ 断言字符串的结尾。括号用于捕获它们内部匹配的内容。这两种方法都有效:

(d{4}/d{2}/w/w/d{2})
^.*(d{4}/d{2}/w/w/d{2}).*$

我不知道你为什么要逃避你的反斜杠。如果在程序中将正斜杠用作分隔符,则可能需要转义正斜杠。我更喜欢使用 ~ 作为分隔符,因为它是一个罕见的字符。

最新更新