development

정규식 : 대소 문자 구분 무시

big-blog 2020. 4. 1. 08:02
반응형

정규식 : 대소 문자 구분 무시


다음 정규 표현식이 대소 문자 구분을 무시하도록하려면 어떻게해야합니까? 모든 올바른 문자와 일치해야하지만 소문자인지 대문자인지는 무시하십시오.

G[a-b].*

전체 정규 표현식이 대소 문자를 무시하기 를 원한다고 가정하면 i플래그를 찾아야합니다 . 거의 모든 정규식 엔진이이를 지원합니다.

/G[a-b].*/i

string.match("G[a-b].*", "i")

언어 / 플랫폼 / 도구의 설명서를 확인하여 일치 모드를 지정하는 방법을 찾으십시오.

정규식의 일부만 대소 문자를 구분하지 않으려면 (원래 답변으로 가정) 두 가지 옵션이 있습니다.

  1. (?i)및 [선택적] (?-i)모드 수정자를 사용하십시오 .

    (?i)G[a-b](?-i).*
    
  2. 모든 변형 (소문자와 대문자)을 정규식에 넣으십시오-모드 수정자가 지원되지 않는 경우에 유용합니다.

    [gG][a-bA-B].*
    

마지막 참고 사항 : ASCII 이외의 유니 코드 문자를 다루는 경우 정규식 엔진이 올바르게 지원하는지 확인하십시오.


구현에 따라 다르지만 사용하겠습니다

(?i)G[a-b].

변형 :

(?i) case-insensitive mode ON    
(?-i) case-insensitive mode OFF

최신 정규식 맛을 사용하면 정규식의 일부에만 한정자를 적용 할 수 있습니다. 정규식 중간에 수정 자 (? im)를 삽입하면 수정자는 수정 자의 오른쪽에있는 정규식 부분에만 적용됩니다. 이 특징을 사용하면 빼기 기호 (? -i)를 앞에 붙여서 모드를 끌 수 있습니다.

https://www.regular-expressions.info/modifiers.html 페이지에서 설명합니다.


대소 문자 구분을 무시하고 'abc'를 확인하는 정규식

(?i)(abc)

i플래그는 일반적으로 소문자 구분을 위해 사용됩니다. 여기에 언어를 제공하지 않지만 아마도 /G[ab].*/i또는 같은 언어 일 것입니다 /(?i)G[ab].*/.


완벽을 기하기 위해 유니 코드를 사용하여 C ++의 정규 표현식에 대한 솔루션을 추가하고 싶었습니다.

std::tr1::wregex pattern(szPattern, std::tr1::regex_constants::icase);

if (std::tr1::regex_match(szString, pattern))
{
...
}

이 비슷한 게시물 ( AWK의 경우 무시 ) 에서 알 수 있듯이 이전 버전의 awk (예 : 바닐라 Mac OS X)에서을 사용해야 할 수도 있습니다 'tolower($0) ~ /pattern/'.

IGNORECASE(?i)또는 /pattern/i중 오류가 발생하거나 모든 행에 대해 true를 반환합니다.


씨#

using System.Text.RegularExpressions;
...    
Regex.Match(
    input: "Check This String",
    pattern: "Regex Pattern",
    options: RegexOptions.IgnoreCase)

구체적으로 : 옵션 : RegexOptions.IgnoreCase


이미 받아 들여진 답변에 추가 :

그렙 사용법 :

에 대한 참고 grep보내고 그것은 단순히 추가하는 것입니다 -i수정. 예 : grep -rni regular_expression이 'regular_expression' 'r'을 검색하기 위해 'i'n'nsensitive, 결과에 줄'n'umbers를 표시합니다.

또한 정규 표현식을 확인하는 데 유용한 도구가 있습니다. https://regex101.com/

예 :이 이미지의 표현 및 설명을 참조하십시오.

여기에 이미지 설명을 입력하십시오

참고 문헌 :


[gG] [aAbB]. * 패턴이 너무 복잡하거나 길지 않은 경우 솔루션을 간단하게 만들 수 있습니다.


자바에서 Regex생성자는

Regex(String pattern, RegexOption option)

따라서 사례를 무시하려면

option = RegexOption.IGNORE_CASE

패턴 일치를 확인하려는 초기 문자열을 소문자로 연결할 수도 있습니다. 그리고 패턴 소문자 기호를 각각 사용하십시오.

참고 URL : https://stackoverflow.com/questions/9655164/regex-ignore-case-sensitivity

반응형