我有以下字符串:
!date +10 (yyyy-MM-dd'T'HH:mm:ssz)
这个字符串也可以是(注意减号而不是加号。:
!date -10 (yyyy-MM-dd'T'HH:mm:ssz)
我需要一个正则表达式模式来提取+(或-)之后的数字。可能不止一位。
我还需要一个模式来提取括号 () 的内容;
我玩过正则表达式朋友。但无法获得工作模式。
干杯。
要选择数字和括号内容,您可以执行以下操作:
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));
}
此正则表达式应分别为您提供与 +/- 之后的数字以及第一个和第二个捕获组中括号内容的匹配:
"!date\\s[+-](\\d+)\\s\\(([^)]*)\\)"
以下正则表达式导致 2 个包含您想要的内容的捕获组
"!date\\s[+-](\\d+)\\s\\((\\d{4}-\\d{2}-\\d{2}'T'\\d{2}:\\d{2}:\\d{2}z)\\)"