1

数字のパターンを検索する正規表現を作成しようとしています。たとえば、正規表現は 172564817256481725648 から 1725648 を引き出す必要があります。

現在、私は持っていますが (\\d+){1+}、空白を返すだけです。

4

2 に答える 2

4

それを行うための正規表現を見つけるつもりはないと思います。探していることを行うには、より強力なメカニズムが必要です。そのようなメカニズムの 1 つがRobin-Karp アルゴリズムです。

于 2012-04-29T23:35:15.767 に答える
2

これはあなたの例で動作します

^(\d+)\1+$

ここでRegexrを参照してください

グループ 1 から見つかったパターンを取得できます。

これは、同じ数字シーケンスのシーケンスと一致します。\1で一致するものへの後方参照(\d+)です。後ろに を置いた+ので、このシーケンスを最後まで一致させる必要があります。文字列の先頭と末尾に^固定します。$

しかし、あなたの要件はあまり明確ではありません。これを見る

(\d+).*\1

アンカーがなく、.*検索されたパターンの間にあるものを許可します。ただし、文字列の最初のシーケンスのみが検索され、文字列の後半で繰り返されます。

Hello1725648Foo987Bar987Foobar1725648  
     |||||||__________________|||||||

それは見つけます1725648

He987llo1725648FooBar987Foobar1725648
  |||________________|||

それは見つけます987

123He987llo1725648FooBar987Foobar1725648
|________________________________|

それは見つけるだけです1

于 2012-04-30T05:51:16.343 に答える