[regex] 정규식 : 대소 문자 구분 무시
다음 정규 표현식이 대소 문자 구분을 무시하도록하려면 어떻게해야합니까? 모든 올바른 문자와 일치해야하지만 소문자인지 대문자인지는 무시하십시오.
G[a-b].*
답변
전체 정규 표현식이 대소 문자를 무시하기 를 원한다고 가정하면 i
플래그를 찾아야합니다 . 거의 모든 정규식 엔진이이를 지원합니다.
/G[a-b].*/i
string.match("G[a-b].*", "i")
언어 / 플랫폼 / 도구 설명서를 확인하여 일치 모드를 지정하는 방법을 찾으십시오.
정규식의 일부만 대소 문자를 구분하지 않으려면 (원래 답변으로 가정) 두 가지 옵션이 있습니다.
-
(?i)
및 [선택적](?-i)
모드 수정자를 사용하십시오 .(?i)G[a-b](?-i).*
-
모든 변형 (소문자와 대문자)을 정규식에 넣으십시오-모드 수정자가 지원되지 않는 경우에 유용합니다.
[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