【发布时间】:2020-01-11 10:06:11
【问题描述】:
我有一个找到特定模式的正则表达式。这在文本被隔离时有效。但是,我希望它在被其他文本包围时工作,并以某种方式从那里提取它。这是我想出的模式。例如,如果 9708/32/M/J/15 是文本,它会找到它。但如果是 awfawf9708/32/M/J/15awfafwaf 就找不到了。
Pattern pattern = Pattern.compile("^\\d{4}/\\d{2}/\\w/\\w/\\d{2}$");
如何修改它以使其在两种情况下都能正常工作?
【问题讨论】:
-
你可以省略锚
^和$ -
不起作用。结果相同
-
你试过这样吗? ideone.com/pXAkIE
-
您可能正在使用
Matcher.matches(),它试图匹配整个字符串。如果使用Matcher.find(),则可以匹配部分文本。 -
This 为我工作:
\d{4}\/\d{2}\/\w\/\w\/\d{2}。我不是RegEx也不是Java专家,但据我了解,您反转了正斜杠的转义。根据@Thefourthbird,^和$确实可以省略。