1
Google App Script의 독립 실행 형 스크립트에서 URL을 처리하는 중입니다.Google App 스크립트를 사용하여 URL 구문 분석
내 문제는 그물에있는 정규식 buiding 도구가 내 정규식이 옳다는 것을 말해 주지만, 나는 하나의 가치만을 갖는다.
특히 내 코드 :
function UrlComponents(url) {
const _urlMatchPattern = /^((http[s]?):\/)?\/?([^:\/\s]+)(:([^\/]*))?((\/\w+)*\/)([\w\-\.]+[^#?\s]+)(\?([^#]*))?(#(.*))?$/mig; // Source: http://stackoverflow.com/questions/27745/getting-parts-of-a-url-regex
if (!_urlMatchPattern.test(url))
return new Array();
var urlMatches = url.match(_urlMatchPattern);
if (urlMatches != null)
{
Logger.log("Count:" + Math.floor(urlMatches.length));
for (var i=0; i<Math.floor(urlMatches.length);i++)
Logger.log("Position " + i + ": " + urlMatches[i]);
}
return urlMatches;
}
I 코드를 실행하여 테스트하는 경우, 출력은 충전 문자열을 포함하는 단일 배열 요소이다. 그러나 정규식 테스트 도구 (예 : http://gskinner.com/RegExr/ 또는 www.regexplanet.com/advanced/java/)를 통해 동일한 정보가 올바른 정보를 제공합니다.
내 어쩔 수없는 어리석은 실수를 지적하거나 도움을 주신 모든 분들께 감사드립니다. 즉 라인이
const _urlMatchPattern = /^((http[s]?):\/)?\/?([^:\/\s]+)(:([^\/]*))?((\/\w+)*\/)([\w\-\.]+[^#?\s]+)(\?([^#]*))?(#(.*))?$/mi;
고마워, megabyte1024해야한다 감사와
, 당신이 당신의 정규 표현식에서
/g
수정을 제거해야하는 문제를 해결하기 위해 –@ Jonny Mak 만약 내가 당신의 코드의 일부분을 사용해야한다면 그 부분에 대한 URL을 깨지 않고 페이지에서 모든 링크를 추출하고 싶습니까? – user1788736