0
{(1,2),(3,4)};

上記のような入力が2つのペア('('と')'の間の整数値)のセット('{'と'}'の間)であることを確認するにはどうすればよいですか?上記のように3つのコンマを使用する必要があります。私の推測正しい記号を文字配列で検索する(どちらかわからない)のが最善かもしれませんが、もっと速い方法はありますか?

整数値は1、2、3などよりもはるかに大きく、負になる可能性があることに注意してください。

4

1 に答える 1

2

これがパフォーマンスに重要でない場合は、すばやくダーティな正規表現を使用できます。

  • -?\d+任意の長さ(つまり、1桁以上)の数字シーケンスに一致し、オプションで負の符号が前に付きます
  • 中括弧{ }と括弧( )は正規表現の特殊文字であるため、エスケープする必要があります(\{など)。
  • 私の仮定では、空白は許可されていません。これが当てはまらない場合は、正規表現を変更して、\s*許可されている任意の場所にオプションの空白(0個以上の空白文字)を含める必要があります。

最終的な正規表現は次のようになります。 \{\(-?\d+,-?\d+\),\(-?\d+,-?\d+\)\}

いずれかの数字値もキャプチャする必要がある場合は、キャプチャ括弧を追加できます。

于 2012-02-12T22:02:12.723 に答える