次の文字列があります。
!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));
}
次の正規表現は、必要なコンテンツを含む2つのキャプチャグループにつながります
"!date\\s[+-](\\d+)\\s\\((\\d{4}-\\d{2}-\\d{2}'T'\\d{2}:\\d{2}:\\d{2}z)\\)"
この正規表現は、それぞれ最初と 2 番目のキャプチャ グループの +/- の後の数字と括弧の内容と一致するはずです。
"!date\\s[+-](\\d+)\\s\\(([^)]*)\\)"