0

正規表現についてサポートが必要です。

複数の問題を含むチェックインで問題が発生するまで、私はsvnをMantisとうまく統合できたと思いました。Mantisbt1.2.5を使用しています

私がサポートしようとしているコミットメッセージは次のようになります。「問題#74 78 1123時間27分しかかからなかった485行目に何かをしました」。[74、78、112]を返すにはregexpが必要です([485、7、27]は必要ありません)。

私の「current」$g_source_control_regexp = '/\b(bug|issue)[s]{0,1}\s*[#]{0,1}\s*(\d+\s+)+/i'は「Issues#74 78112」の1つの要素を返しているようですが、何も更新されていません

アドバイスをいただければ幸いです。

ジム

4

1 に答える 1

1

正規表現だけではそれができないと思います。繰り返しキャプチャグループは、最後の反復のみをキャプチャします(キャプチャグループの繰り返しと繰り返しグループのキャプチャの詳細を参照してください)

そうでなければ、私はこのようにします(私はPHPプログラマーではないことに注意してください...):

str.match(/\b(?:bug|issue)s?\s*#?\s*((?:\d+\s+)+)/i)[1].trim().split(/\s+/)
result: ["74", "78", "112"]
  • (?:)非キャプチャグループです
  • matches[0]通常、完全なパターンマッチです
  • matches[1]最初にキャプチャされたグループです(この場合は1つだけです)
  • trim()最後に余分なスペースを取り除くために必要です(これがないと、最後に空のグループが表示されます["74"、 "78"、 "112"、 ""])
于 2011-05-02T22:49:50.720 に答える