메인 콘텐츠로 건너뛰기

Ahrefs에서 정규 표현식 사용하는 방법

사이트 감사의 고급 필터에서 정규 표현식을 사용하는 방법과 크롤링에 대한 "포함" 및 "제외" 규칙을 설정하는 방법을 배웁니다.

Anna avatar
작성자: Anna
어제 업데이트함

정규 표현식(일반적으로 REGEX 또는 REGEXP로 알려짐)은 특정 패턴과 일치하는 URL 또는 텍스트를 찾는 데 도움을 줍니다.

💡 Site Explorer, Site Audit 및 저희 API의 특정 엔드포인트에서 REGEX가 지원됩니다:

사용 가능한 모든 장소에서 더 알아보기.

REGEX 작동 방식

간단한 예제에서 더 복잡한 예제로 이동해 봅시다.

다음 설정은 “blog”라는 단어를 포함하는 모든 URL을 포함하고 “product”라는 단어를 포함하는 URL을 제외합니다.

우리의 봇에게 아래를 크롤링하라는 지시입니다:
https://ahrefs.com/blog
https://ahrefs.com/blog/seo-techniques/
https://ahrefs.com/academy/blogging-for-business

다음은 무시합니다:
https://ahrefs.com/blog/category/product-blog/
https://ahrefs.com/blog/ecommerce-out-of-stock-products/

간단하죠?

그러나 /blog/ 하위 폴더의 URL만 포함하고 https://ahrefs.com/academy/blogging-for-business는 제외하고 싶다면 어떻게 해야 할까요?

더 발전된 패턴을 사용할 수 있습니다:

아마 'blog' 앞뒤에 있는 기호들이 궁금하실 겁니다.

정규 표현식에서는 특별한 문자가 아닌 것으로 인식되도록 일부 기호를 ‘이스케이프’해야 합니다. 그렇게 하려면 해당 문자 앞에 백슬래시 \를 사용하세요.

정규 표현식에서 간단한 점 .임의의 문자를 나타냅니다. 그러나 \.마침표 기호로 작동합니다. 바로 위 예시에서는 이렇게 슬래시 문자를 이스케이프했습니다: \/

Ahrefs에서 다중 REGEX 표현식 처리 방법

크롤 설정의 Site Audit에서 URL을 포함하거나 제외하기 위해 여러 패턴을 적용할 수 있습니다. 규칙 중 하나에 대한 일치 항목이 없는 경우 규칙이 건너뜁니다.

위의 규칙은 크롤러에게 다음 단어를 포함하는 URL을 크롤링하도록 지시합니다:

“블로그” 또는 “제품”

그리고 다음 단어를 포함하지 않는:

“블로깅” 또는 “생산적.”

여러 URL 재작성 규칙의 경우, 각 새로운 규칙은 이전 규칙의 결과에 순차적으로 실행됩니다.

유용한 정규 표현식 토큰

^ - 이 기호는 URL의 시작을 나타냅니다

$ - 이 기호는 URL의 끝을 나타냅니다

. - 소수점은 임의의 단일 문자를 일치시킵니다

* - 이전 표현을 0번 이상 일치시킴

+ - 이전 내용을 1번 이상 일치시킴

? - 이전의 내용을 0번 혹은 1번 일치시킵니다

| - OR에 해당합니다.

[__] - |와 비슷하지만 범위를 정의하는 데 사용할 수 있습니다

(__) - 괄호는 그 사이의 정규 표현식을 그룹화합니다

\d - 1개의 숫자와 일치

\D - 숫자가 아닌 단어와 일치

\w - 단어 문자와 일치

\W - 비 단어 문자와 일치

다양한 도구와 플랫폼이 서로 다른 정규식 라이브러리를 사용할 수 있습니다. 우리의 사이트 감사는 RE2를 사용합니다. 전체 문법을 여기서 확인할 수 있습니다.

몇 가지 실용적인 예

1. /wp-content/ 하위 폴더의 Https URL

^https:.*\/wp-content\/

^ URL의 시작을 나타냅니다. 이 규칙은 “https:”로 시작하여 “/wp-content/” 이전에 0개 이상의 문자.*가 있을 수 있는 모든 URL과 일치합니다.

패턴과 일치하는 URL:
https://ahrefs.com/blog/wp-content/uploads/2019/03/fb-ranking-1-image-1.png

패턴과 일치하지 않는 URL:
http://ahrefs.com/blog/wp-content/uploads/2019/03/fb-ranking-1-image-1.png

2. 하위 폴더의 URL, 디렉토리 URL 포함.

\/blog(\/.*)?$

이 규칙은 “/blog”로 끝나는 모든 URL과 $, 슬래시 및 0개 이상의 문자가 (\/.*)? 있을 수 있는 모든 URL과 일치합니다. 이 패턴의 물음표는 괄호 안의 표현식을 0번에서 1번까지 일치시키므로 옵션입니다.

패턴과 일치하는 URL:
https://ahrefs.com/blog
https://ahrefs.com/blog/301-redirects/

패턴과 일치하지 않는 URL:
https://ahrefs.com/blogging
https://ahrefs.com/academy/blogging-for-business

3. @ 또는 % 기호를 포함하는 URL

@|% 또는 [@%]

|[__]는 OR로 작동합니다

패턴과 일치하는 URL:
https://ahrefs.com/@timsoulo
https://ahrefs.com/%D1%81%D0%B5%D0%BE

패턴과 일치하지 않는 URL:
https://ahrefs.com/blog/nofollow-links

4. Woocommerce의 "Add to Cart" URL

\?add-to-cart=

?가 정규 표현식에서 특별한 기호라는 점을 염두에 두세요. 단순 물음표로 사용하려면 이렇게 이스케이프해야 합니다: \?

패턴과 일치하는 URL:
https://yourdomain.com/?add-to-cart=25

패턴과 일치하지 않는 URL:
https://yourdomain.com/smartphones

5. 연도(4자리 숫자)를 포함하는 URL

[0-9]{4} 또는 \d{4}

[0-9]{4}는 네 자릿수 숫자 {4}를 포함하는 모든 URL과 일치합니다 [0-9].

\d{4}\d가 한 자리 숫자를 나타내므로 동일하게 작동합니다.

패턴과 일치하는 URL:
https://yourdomain.com/best-smartphones-2019

패턴과 일치하지 않는 URL:
https://yourdomain.com/smartphones

6. 하위 도메인의 모든 URL (http 및 https 둘 다)

^https?:\/\/help.ahrefs.com

이 규칙은 "http://help.ahrefs.com" 또는 "https://help.ahrefs.com"로 시작하는 모든 URL과 일치합니다.

여기의 물음표 s?는 “s”가 옵션임을 나타내므로, httphttps가 이 규칙과 일치합니다.

패턴과 일치하는 URL:
https://help.ahrefs.com
http://help.ahrefs.com/
http://help.ahrefs.com/site-audit

패턴과 일치하지 않는 URL:
https://ahrefs.com/site-audit
ftp://help.ahrefs.com

7. 다양한 파일 URL

\.(jpg|gif|bmp|png|css|pdf)$

이 규칙은 $로 끝나는 .jpg OR .gif OR .bmp OR .png OR .css OR .pdf URL과 일치합니다.

확장자의 수를 줄이기 위해 이 표현식을 줄일 수 있습니다. 예를 들면, .jpg 또는 .png로 끝나는 URL만을 위한 경우:


.*\.(jpg|png)$

괄호 (__)는 그 사이의 정규 표현식을 그룹화하고 |는 OR로 작동합니다

패턴과 일치하는 URL:
https://ahrefs.com/blog/wp-content/uploads/2019/03/fb-ranking-1-image-1.png
http://ahrefs.com/blog/wp-content/uploads/2019/03/fb-ranking-1-image-1.png

패턴과 일치하지 않는 URL:
https://ahrefs.com/site-audit

8. Site Audit에서 스테이징 웹사이트를 크롤링하기 위한 URL 재작성 규칙 사용

사이트 감사 설정에서 URL 재작성 규칙을 사용하여 URL의 일부를 다른 값으로 대체할 수 있습니다.

E.g. 스테이징 웹사이트가 하위 도메인을 기반으로 하는 경우, 예: staging.ahrefs.com

이 규칙은 모든 URL에서 "ahrefs.com"을 "staging.ahrefs.com"으로 대체합니다.

9. 번호가 매겨진 캡처 그룹을 사용한 URL 재작성 규칙

캡처 그룹을 사용하면 한 규칙으로 URL의 여러 부분을 대체할 수 있습니다.

일치할 패턴:

www\.ahrefs\.com([^\?|#]*)?([#]?[^\?]*)\??(.*)

다음으로 교체:

www.ahrefs.com\1?parameter1=5273&\2?parameter2=7465&\3

([^\?|#]*)는 1번째 캡처 그룹입니다

([#]?[^\?]*)는 2번째 캡처 그룹입니다

(.*)는 3번째 캡처 그룹입니다

\1?parameter1=5273&\2\3

첫 번째 캡처 그룹의 값을 "?parameter1=5273"으로 대체합니다

\2?parameter2=7465&는 두 번째 캡처 그룹의 값을 "?parameter2=7465&"으로 대체합니다

\3는 세 번째 캡처 그룹과 일치하는 값을 삽입합니다

6. 50자보다 긴 텍스트 필터링

^[\s\S]{50,}$

추가 자원

이 글이 정규 표현식을 활용하여 할 수 있는 멋진 방법 몇 가지를 배울 수 있도록 도와주기를 바랍니다.

이 웹사이트에서 정규 표현식을 테스트할 수 있습니다: https://regex101.com/. “Golang”을 왼쪽 메뉴에서 선택해야 한다는 점에 유의하세요.

답변이 도움되었나요?