我有这样编译的模式:
Pattern pattern = Pattern.compile(".*((M+)\\W*(d+)).*");
和字符串:
String string = "EEEE, MMMM d, yyyy";
matcher.group(2)仅返回“ M”,但我想获取整个“ MMMM”字。如何使用群组进行此操作?我认为M +正则表达式可以处理这种情况。提前致谢 ;)
您需要.*
通过在?
旁边添加来使第一个作为非贪婪者*
。注意:.*
贪婪的匹配所有字符,直到最后一个字符。因此.*(M+)
应该只捕获最后一个M
字符,因为之前存在的所有字符M
都由匹配.*
。
Pattern pattern = Pattern.compile(".*?((M+)\\W*(d+)).*");
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句