3

yahoo pipes の Regex モジュール1 - 55 of 55のみを取得するには、どの正規表現を適用して置換する必要があるかを知りたいです。55

ありがとう

4

2 に答える 2

1

マッチ

\d+ - (\d+) of \1 

$1
于 2010-08-25T11:46:34.450 に答える
1

これを一致させることができます:

\d+ - (\d+) of \1

$1そして、グループ 1 がキャプチャした に置き換えます。

\d数字の文字クラスで、+1 回以上の繰り返しです。はキャプチャ グループであり、(…)はそのグループが一致するものを参照します。したがって、これは次のような文字列に一致します。\1

num1 - num2 of num2
        |        |
        \________/ must match

参考文献


変化

このパターンは、空白の一致をより柔軟にするためのわずかな変更です。

\d+\s+-\s+(\d+)\s+of\s+\1

これは前のパターンに似ていますが、以前はリテラル スペース文字だけだったところはどこでも を使用します\s+。これは、任意の数の空白文字の空でないシーケンスに一致するパターンです。これには、改行、タブなどが含まれます。

3 番目の数値が 2 番目の数値と同じである必要がない場合は、\d+代わりに別の数値を使用し\1ます。

\d+\s+-\s+\d+\s+of\s+(\d+)

これで、 のような文字列に一致"1 - 20 of 149"し、間隔が自由になります。角かっこは 3 番目の数字に一致するように移動したため、文字列全体をその数字 (149この場合) に置き換える場合は、単純に に置き換え$1ます。

3 つの数値すべてを個別にキャプチャする場合は、次のように記述できます。

(\d+)\s+-\s+(\d+)\s+of\s+(\d+)
\___/       \___/        \___/
  1           2            3

これで、最初の数字はグループ 1 によってキャプチャされ、2 番目の数字はグループ 2 によってキャプチャされ、3 番目の数字はグループ 3 によってキャプチャされます。

于 2010-08-25T11:48:16.607 に答える