1

正規表現の経験がなく、助けが必要です。git タグを抽出する必要があります。入力文字列は次のようになります。

6dde3d91f23bff5ab81e91838f19f306b33fe7a8refs/tags/3.4.2

// there is a new line at the end of the string

必要な文字列の部分は3.4.2. これが私のコードです:

var pattern = /.*([0-9]{1}\.{1}[0-9]{1}\.{1}[0-9]{1}).*/ig;
var match = pattern.exec(string);
// match[1] gets what I need

それは機能しますが、この正規表現はとてつもなく長いので、短くする方法が必要です。誰か助けてくれませんか?

ありがとう

4

5 に答える 5

3

次のよう[0-9]{1}に置き換えることができます。\d

/\d\.\d\.\d$/

は行末に$一致します。

編集: Rob-Wのフィードバックに基づいて更新

于 2012-10-16T21:27:33.580 に答える
1

正規表現は必要ありません。文字列を分割するだけです。

var tag ="6dde3d91f23bff5ab81e91838f19f306b33fe7a8refs/tags/3.4.2";​​​​​
console.log(tag.split('/')[2]);​ // results in 3.4.2
于 2012-10-16T21:27:22.123 に答える
0

これは最短のものです>>

[0-9。]+$

于 2012-10-17T05:28:57.160 に答える
0

私はあなたの結果を得ました\d\..*

これ以上短くすることはできません。

ここでテストする

于 2012-10-16T21:33:18.927 に答える
0

{1}、すべてのステートメントに暗黙的に含まれています。それらを取り除くと、表現が短くなります。

ただし、 j08691の答えは正しいです。文字列を分割するだけです。

于 2012-10-16T21:28:43.520 に答える