我有以下字符串:
[Tag|String|WORD012311120151218]
我如何从0123111
获得WORD012311120151218
- 我遇到的问题是0123111
是动态的,可以通过系统任意长度。
我的思维过程如下,但我似乎无法在搜索后立即获取:从WORD
之后提取任何值并在日期20151218
之前结束 - 日期每天都在变化,但它始终是将是8位数。
这可能吗?
答案 0 :(得分:0)
/\[.*WORD([0-9]+)[0-9]{8,8}\]$/
应该这样做,并根据您正在使用的正则表达风味进行适当的逃避。 ([0-9]+)
是您想要的,[0-9]{8,8}
是日期的8个尾随数字。
答案 1 :(得分:0)
您可以使用此正则表达式:
.*WORD(\d+)\d{8}\].*
获取群组$1
。
this link中的解释。
在Java中,它将是:
String input = "[Tag|String|WORD012311120151218]";
String num = input.replaceAll(".*WORD(\\d+)\\d{8}\\].*", "$1");
System.out.println(num); //prints 0123111
答案 2 :(得分:0)
“WORD012311120151218'.match(/(\ d +)(\ d {8} $)/)[1]