我有以下字符串:
!date +10 (yyyy-MM-dd'T'HH:mm:ssz)
这个字符串也可以(注意减去而不是加号。:
!date -10 (yyyy-MM-dd'T'HH:mm:ssz)
我需要一个正则表达式模式,它将在+(或 - )之后提取数字。可能有多个数字。
我还需要一个模式来提取括号()的内容;
我在regex pal上玩过一次游戏。但无法获得有效的模式。
干杯。
答案 0 :(得分:3)
选择号码&括号内容,你可以这样做:
String str = "date +10 (yyyy-MM-dd'T'HH:mm:ssz)";
Matcher m = Pattern.compile(".*[+|-](\\d+).*\\((.*)\\).*").matcher(str);
if (m.matches()) {
System.out.println(m.group(1));
System.out.println(m.group(2));
}
答案 1 :(得分:0)
这个正则表达式应该分别与第一个和第二个捕获组中括号的+/-和内容相匹配:
"!date\\s[+-](\\d+)\\s\\(([^)]*)\\)"
答案 2 :(得分:0)
以下正则表达式会导致2个捕获组包含您想要的内容
"!date\\s[+-](\\d+)\\s\\((\\d{4}-\\d{2}-\\d{2}'T'\\d{2}:\\d{2}:\\d{2}z)\\)"