我有一个格式为XXXX_YYYY_YYYYYYY_YYYYYYZZZZ的字符串
如何从后向提取字符串,直到击中thrid _(下划线).
提取值:YYYY_YYYYYYY_YYYYYYZZZZ
我试过这个((?:_ [^ _] *){3})$,它似乎在开头使用额外的_,我可以用Java删除它.
有什么方法可以让我在开始时得到_.
解决方法
像这样:
String line = "XXXX_YYYY_YYYYYYY_YYYYYYZZZZ"; Pattern p = Pattern.compile("([^_]+(?:_[^_]*){2})$"); Matcher m = p.matcher(line); if(m.find()) { System.out.println(m.group(1)); }
只需将“三次”{3}分成一个没有_的实例和两个需要它的实例.