2017-08-07 12 views
-3

私は簡単なGoogleスプレッドシートのリンクを持っています。javascriptの正規表現で苦労しています

https://docs.google.com/spreadsheets/d/kdfaghlkdghidubtinvieorn/edit#gid=12345

私はリンクのIDを抽出regextract次き:

=REGEXEXTRACT(C2,"(?:/d/)(.*)(?:\/edit)")

を所望の効果を持っているようです。

私はこれをGoogleスクリプトで再作成しようとしていますが、私は同じ回答を得ていません。

function regex() { 
    var link = "https://docs.google.com/spreadsheets/d/kdfaghlkdghidubtinvieorn/edit#gid=12345"; 
    var regExp = new RegExp("(?:\/d\/)(.*)(?:\/edit)", "gi") 
    var id = regExp.exec(link)[1]; 
    Logger.log(id) 
} 
+0

あなたはどんな答えを得ていますか? – NikxDa

+0

@NikxDa次のようになります: '/ docs.google.com/spreadsheets/d/kdfaghlkdghidubtinvieorn' – mfizz

答えて

0

だから、あなたはあなたの正規表現は、/ D /うまく後にそれらの文字に一致しているようだGID = 12345

0

としてIDを取得します(?:\gid=.*)

を試してみてください。 スラッシュの間に単語の文字列を探している場合は、欲望の代わりに.*の方が良い結果になるのでしょうか?

\/d\/(\w+)\/ 

の例では、スニペット:

function getIdFromLink(link){ 
 
    let regExp = /\/d\/(\w+)\//; 
 
    return regExp.exec(link)[1]; 
 
} 
 

 
var link = "https://docs.google.com/spreadsheets/d/kdfaghlkdghidubtinvieorn/edit#gid=12345"; 
 

 
var id = getIdFromLink(link); 
 

 
//Logger.log(id) 
 
console.log("id: "+ id);

0

をそれは私がなぜ分からないの構文とは何かを持っていますが、周りに他のブラケットを巻き付けて、問題を解決するようだ:

(?:(\/d\/))(.*)(?:\/edit)