繁体   English   中英

正则表达式模式问题

[英]Regex pattern issue

我有以下字符串:

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

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

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

我需要一个正则表达式模式,该模式将提取+(或-)后的数字。 可能有多个数字。

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

我在regex pal上玩耍。 但无法获得工作模式。

干杯。

要选择数字和括号内容,您可以执行以下操作:

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)\\)"

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM