0

長さがゼロ以上のすべてのバイナリ文字列に一致するように正規表現を書きたいと思います。要件は、奇数の位置は 1 でなければならず、偶数の位置は 1 または 0 のいずれかである必要があるということです。

正規表現で位置を制御する方法がわかりませんか?

私の考えは次のようなものです([1]+[01]*)+

サンプル:

  • 10101

  • 11111

4

2 に答える 2

2

その量指定子を内部から削除する必要があります。また、長さ 0 の文字列に一致させたいため、*完全な正規表現で quantifierを使用する必要があります+

次の正規表現を使用してみてください。

(1[01]?)*

これは一致します:

  • 1
  • 2位は01
  • 0 以上の繰り返しの場合、すべての奇数の位置が1で埋められ、偶数の位置には0または1を含めることができます。
  • [01]奇数長の文字列に一致するオプションです。
于 2013-08-04T07:27:14.667 に答える
1

これを使ってみてください:

String data = "10111";
        Pattern pattern = Pattern.compile("(1[01]?)*");

        Matcher matcher = pattern.matcher(data);
        while (matcher.find()) {
            // Indicates match is found. Do further processing
            System.out.println(matcher.group());
        }
于 2013-08-04T07:30:35.347 に答える