Google Apps Scripts では、次の関数を使用して RegExp を使用して URL を一致させようとしています。
function testRegex(){
var str = "href='https://sites.google.com/a/domain.com/image-store/images/Image1.jpg?attredirects=0'";
var regex = new RegExp('http[:a-zA-Z\.\/\-_]{0,100}Image1.jpg', 'gi');
str = str.replace(regex,"new_url");
Logger.log(str);
}
http://www.regular-expressions.info/javascriptexample.htmlの正規表現テスターに同じ正規表現と文字列を入力すると、機能します。ただし、Google Apps Scripts では機能しません。
理由はありますか?
編集:問題はアンダースコアにあると考えました。\w に置き換えると役立ちます。したがって、正規表現を次のように置き換えると
https[\.a-zA-Z0-9\/+:\w-]{0,100}Image1.jpg
できます。
しかし、それでもアンダースコアには一致しません。たとえば、次の URL では動作しません。
https://sites.google.com/a/domain.com/image-store/_/rsrc/1351707816362/images/Image1.jpg