質問

正規表現の助けが必要です。

複数の問題を含むチェックインの問題に遭遇するまで、SVNがマンティスと喜んで統合されたと思いました。 MantisBT 1.2.5を使用しています

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

私の「現在」 $g_source_control_regexp = '/\b(bug|issue)[s]{0,1}\s*[#]{0,1}\s*(\d+\s+)+/i' 「問題#74 78 112」の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] 最初の捕獲されたグループです(この場合の唯一のグループ)
  • trim() 最後に余分なスペースを取り除くには必要です(それがなければ、最後に空のグループが得られます[74 "、「78"、「112」、 ""))
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top