0

我有以下字符串:

!date +10 (yyyy-MM-dd'T'HH:mm:ssz)

这个字符串也可以是(注意减号而不是加号。:

!date -10 (yyyy-MM-dd'T'HH:mm:ssz)

我需要一个正则表达式模式来提取+(或-)之后的数字。可能不止一位。

我还需要一个模式来提取括号 () 的内容;

我玩过正则表达式朋友。但无法获得工作模式。

干杯。

4

3 回答 3

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));
}
于 2012-10-04T09:50:12.777 回答
0

此正则表达式应分别为您提供与 +/- 之后的数字以及第一个和第二个捕获组中括号内容的匹配:

"!date\\s[+-](\\d+)\\s\\(([^)]*)\\)"
于 2012-10-04T09:46:04.813 回答
0

以下正则表达式导致 2 个包含您想要的内容的捕获组

"!date\\s[+-](\\d+)\\s\\((\\d{4}-\\d{2}-\\d{2}'T'\\d{2}:\\d{2}:\\d{2}z)\\)"
于 2012-10-04T09:49:34.910 回答