foreach (Match match in Regex.Matches(line, "X"))
{
indexes.Add(match.Index);
}
빠른 질문이 있습니다. 다음은 코드의 일부입니다. X의 인덱스를 가져 오지만 X가 소문자 인 경우에도 인덱스를 가져 오려고합니다. 나는 무엇을 써야 하는가?Regex.Matches 대문자와 소문자가 일치합니다.
foreach (Match match in Regex.Matches(line, "X"))
{
indexes.Add(match.Index);
}
빠른 질문이 있습니다. 다음은 코드의 일부입니다. X의 인덱스를 가져 오지만 X가 소문자 인 경우에도 인덱스를 가져 오려고합니다. 나는 무엇을 써야 하는가?Regex.Matches 대문자와 소문자가 일치합니다.
사용 i
모드 수정 (정규 표현식 대소 문자를 구분하기) :
foreach (Match match in Regex.Matches(line, "(?i)X"))
또는 RegexOptions.IgnoreCase
옵션을 사용
foreach (Match match in Regex.Matches(line, "X", RegexOptions.IgnoreCase))
를 지정하거나 모두 X
및 x
:
foreach (Match match in Regex.Matches(line, "[Xx]"))
정규식을 사용하지 않고 그냥 Regex.Matches(line.ToLower(), 'x')
할 수 있습니다.
솔루션이지만 Regex 일치가 이제는 ToLower와 O (2n) 연산이므로 솔루션이 상당히 비효율적입니다. –
정규식은 O (n)과 일치하지 않습니다 (정직한 질문, 단서가 없습니다)? 그런데 여기서는 성능을 고려하지 않았습니다. –
Regex는 정의상 O (n) 연산이 아니지만 표현 자체에 크게 의존합니다. –
''[Xx] ''를 써야합니다. 이것은 모든 정규 표현식 튜토리얼에 의해 다루어지며, 정규 표현식을 사용하려고한다면 SO를 묻기 전에 IMHO가 합당한 단계 중 하나를 읽는다. – Jon
한 문자 만 찾고 있다면 Regex를 사용하는 것은 무거운 짐입니다. – Sean