CAT 편집기

웹 편집기(TMS)의 정규식

컨텐츠는 영어 텍스트를 Phrase Language AI를 이용해 기계 번역한 것입니다.

웹 편집기에서의 정규식 지원은 Lucene Regex 엔진 구현에 의해 제한됩니다.

정규식을 사용하려면 필터 설정에서 일치 항목(정규식 사용)을 활성화하십시오. 필터 입력 필드의 녹색 확인 표시는 유효한 정규식이 성공적으로 검증되었음을 나타냅니다.

문의는 기본적으로 대소문자를 구분하지 않습니다. 대소문자를 구분하려면 필터 설정에서 일치 항목(대소문자 구분)을 활성화하십시오.

일치 항목(단어)(더 긴 단어 내의 하위 문자열이 아닌 전체 단어만 일치 항목으로 찾도록 보장)은 사용할 수 없습니다.

문의 ^abc$은 예상대로 작동하여 전체 세그먼트를 일치 항목으로 찾지만, abc는 모든 텍스트에서 하위 문자열 abc을 일치 항목으로 찾습니다.

제한 사항

부분적으로 서식이 지정된 문의의 올바른 교체는 지원되지 않습니다. 예를 들어, 텍스트 "First name<}: Bob, Last name: Dylan."에서 "Jméno: $1, Příjmení: $2."을 검색하면 "{>Jméno: Bob, Příjmení: Dylan"로 교체됩니다.

지원되지 않는 패턴

  • 정확한 단어를 일치 항목으로 찾는 데 사용되는 단어 경계 앵커 \b(데스크톱 편집기에서 작동).

  • \\[1-9] - 역참조(\1, \2 등), 예: (\w+)\s+\1를 사용하여 "hello hello"와 같이 중복된 단어를 일치 항목으로 찾기

  • \(\?=|\(\?!|\(\?<=|\(\?<! - 전방 탐색 및 후방 탐색, 예: cat(?=\.jpg)를 사용하여 "cat.jpg"에서만 "cat"을 일치 항목으로 찾기

  • \(\?: - 비캡처 그룹, 예: (?:Mr|Mrs|Ms)\. \w+,이지만 캡처 그룹 (Mr|Mrs|Ms)\. \w+은 지원되며 "Mrs. Smith", "Mr. Brown"과 같은 이름을 일치 항목으로 찾습니다.

  • \(\?# - 인라인 주석, 예: \d-(?# year)\d-(?# month)\d(?# day)를 사용하여 "2025-06-25"를 일치 항목으로 찾기

  • \(\?P<[^>]+> - 명명된 캡처 그룹, 예: (?P<amount>\d+)\s?(?P<currency>USD|EUR)를 사용하여 "150 USD" 및 "99 EUR"를 일치 항목으로 찾기

기본 패턴 일치 항목 찾기

임의의 단일 글자에 대한 자리 표시자로서의 점(.)

  • c.at: 일치 항목: “chat”, “coat”. 일치 항목 아님: “cat”, “cheat”

  • wa.ter: 일치 항목: “waiter”, “waster”. 일치 항목 아님: “water”

  • s.ip: 일치 항목: “skip”, “ship”, “slip”. 일치 항목 아님: “sip”, “strip”

수량자

? - 0회 또는 1회 발생

  • colou?r: 일치 항목: “color”, “colour”

  • g?rain: 일치 항목: “grain”, “rain”

  • books?: 일치 항목: “book”, “books”

.* - 임의 개수의 글자(없음 포함)

  • h.*y: 일치 항목: “happy”, “history”, “honey”

  • sa.*d: 일치 항목: “sad”, “sand”, “satisfied”

  • m.*ing: 일치 항목: “morning”, “meeting”, “marketing”

.+ - 최소 한 글자가 나타나야 함

  • pa.+er: 일치 항목: “paper”, “painter”

  • a.+ed\" 일치 항목: “asked”, “accepted”, “allowed”

* - 0회 이상의 발생

  • go*al: 일치 항목: “goal”, “goooooooal”

+ - 하나 이상의 발생

  • no+: 일치 항목: “no”, “noooooo”

  • $1+: 일치 항목: “$1”, “$11”, “$111”

개방형 패턴은 편집자에서 성능 문제를 일으킬 수 있으므로 가능한 한 구체적인 패턴을 사용하는 것이 좋습니다.

중요 사항

편집자에는 정규식 패턴의 복잡성에 대한 내장 제한이 있습니다. 너무 광범위하거나 와일드카드를 많이 사용하는 패턴은 잘못된 정규식으로 실패할 수 있습니다. 이를 방지하려면:

  • 패턴을 짧고 구체적으로 유지하십시오. error-[0-9]\{3\}은(는) 괜찮지만 .*a.*b.*c.*d.*은(는) 그렇지 않습니다.

  • 와일드카드를 최소화하십시오. 각 .+ 또는 .*은(는) 내부 복잡성을 배가시킵니다. 가능한 경우 .*보다 [A-Z]+와(과) 같은 글자 클래스를 선호하십시오.

  • 반복이 포함된 긴 교체 항목은 피하십시오. (word1|word2|...|word20){2,}와(과) 같은 패턴은 제한을 빠르게 초과할 수 있습니다. 대안에 여러 단어나 문장 부호가 포함되어 정규식 복잡성이 추가될 경우 이 현상이 증폭됩니다.

  • 가능하면 한쪽을 고정하십시오. ^prefix.*은(는) .*middle.*보다 훨씬 효율적입니다.

패턴이 거부되면 더 구체적으로 만들어 보십시오. 더 긴 고정 접두사로 시작하여 거기서부터 범위를 좁히십시오. 모든 것을 하나의 복잡한 정규식으로 결합하는 대신 대안의 수를 줄이거나 별도의 패턴으로 처리하는 것을 고려하십시오.

예:

이메일 주소 필터링:

  • 이 패턴은 공백과 주변의 모든 단어와 일치하며 결과가 너무 많이 나올 수 있습니다: .*@.*

  • 결과를 모든 이메일 주소로 제한하려면: [\\w.+\\-]+@[\\w.+\\-]+

  • .com 이메일로만 결과를 제한하려면: [\\w.+\\-]+@[\\w.+\\-]\\.com

  • 이메일 주소에 숫자가 포함된 항목으로 결과를 제한하려면: [\\w.+\\-]*\\d+[\\w.+\\-]*@[\\w.\\-]+

교대(OR 연산자)

  • cat|dog: 일치 항목: “cat” 및 “dog”

  • red|blue|green: 일치 항목: “red”, “blue”, “green”

글자 클래스 및 범위

  • [A-Z]+: 연속된 하나 이상의 대문자(시퀀스)와 일치합니다.

  • [A-Z]{2,}: 모든 대문자 시리즈와 일치합니다(예: 약어 또는 대문자로 작성된 Strings 일치에 유용)

  • [0-9]\{4\}: 네 자리 숫자와 일치합니다(예: "1999", "2003", "1876" (네 글자보다 긴 문자열 내에서도 발견됨; 결과를 제한하려면 향후 계획된 일치 항목 단어 옵션을 사용해야 함)

  • [A-Za-z0-9]+: 모든 영숫자 문자열과 일치합니다(hello! → hello가 일치하지만 !는 [A-Za-z0-9]의 일부가 아님; 100% → 100만 일치함)

  • ([A-Za-z]+\\d+|\\d+[A-Za-z]+): 숫자와 글자의 조합과 엄격하게 일치합니다(예: “user123”, “Admin99”, “Win11”, “5g”, “1080p”)

  • [0-9]{2,4}-[A-Z]{2,3}: 번호판과 일치합니다(예: “12-XY”, “9999-ABC”

예약된 글자 이스케이프 처리 . ? * { } [ ] ( ) \" \\

  • \\+[0-9]{1,2}: “+40”, “+1”과 일치합니다

  • \\{version: [0-9]+\\}: “{version: 12}”, “{version: 13}”과 일치합니다

  • C:\\\\[A-Za-z]+: “C:\\Users”, C:\\Documents, “C:\\Desktop”과 일치합니다

대소문자 구분 안 함 VS 대소문자 구분 필터링

  • 기본적으로 정규식 필터링은 대소문자를 구분하지 않도록 구현됩니다. c.at: “chat”, “Chat”, “CHAT” 및 “coat”, “Coat”, “COAT”와 일치합니다

  • 정규식 필터는 대소문자 구분 UI 필터와 결합할 수 있습니다

캡처 그룹

정규식 캡처 그룹이 인식되고 전체 문의가 강조 표시됩니다. 예: s(e)g은 \"seg\"를 강조 표시합니다. 캡처 그룹을 바꾸기에 사용할 수 있습니다. 예: ”Name: Bob”은 Name: (.*?)로 검색하고 Jméno: $1에 대한 역참조를 사용하여 바꿀 수 있습니다. 누락된 역참조는 원활하게 처리됩니다. 즉, 문의 Name: (.*?)와 바꾸기 Jméno: $1, Title: $2Jméno: Bob, Title: $2로 바뀝니다.

바꾸기 역참조 예시:

  • 필터 (\\d+),(\\d+) 및 바꾸기 $1.$2를 사용하여 소수점 구분 기호를 정규화합니다(예: 5,6 또는 35,949에서 5.6 또는 35.949로)

  • 필터 (\\d+)\\.(\\d+) 및 바꾸기 $1,$2를 사용하여 소수점 구분 기호를 정규화합니다(예: 5.6 또는 35.949에서 5,6 또는 35,949로)

  • 필터 (\\d\{4\})-(\\d\{2\})-(\\d\{2\}) 및 바꾸기 $3/$2/$1를 사용하여 날짜 형식을 다시 지정합니다(예: 2025-06-05에서 05/06/2025로)

  • 필터 ID-(\\d{3,}) 및 바꾸기 Ticket #$1를 사용하여 티켓 번호를 추출합니다(예: ID-45321에서 Ticket #45321로)

  • 필터 (cat|dog) 및 바꾸기 $1-$1를 사용하여 일치하는 텍스트를 복제합니다(예: cat에서 cat-cat으로, dog에서 dog-dog으로)

  • 선택적 그룹: 필터 Hello(, (\\w+))? 및 바꾸기 Hi $1를 사용하여 이름 앞이나 단독으로 있는 \"Hello\"를 바꾸어 인사말을 변환합니다(예: Hello, John에서 Hi John으로, Hello에서 Hi로)

도움이 되었습니까?

Sorry about that! In what way was it not helpful?

The article didn’t address my problem.
I couldn’t understand the article.
The feature doesn’t do what I need.
Other reason.

Note that feedback is provided anonymously so we aren't able to reply to questions.
If you'd like to ask a question, submit a request to our Support team.
Thank you for your feedback.