문제

다음과 같은 정규식이 있습니다.

([0-9]+),'(.)':([0-9]+),(L|R|'.')

다음과 잘 일치합니다.

1,'a':1,R

그러나 교체하면 공백이 있으면 실패합니다.

1,' ':1,R

왜 그렇지 않습니까? . 일치합니까?공백은 문자로 분류되지 않나요?사용할 수 없습니다 \에스 탭과 줄 바꿈을 일치시키고 싶지 않기 때문입니다.나는 또한 다음을 시도했습니다.

([0-9]+),'(.| )':([0-9]+),(L|R|'.')

하지만 그것도 작동하지 않습니다. IgnorePatternWhitespace 활성화됨).

도움이 되었습니까?

해결책

나는 당신이 보고 있는 것을 재현할 수 없습니다:

using System;
using System.Text.RegularExpressions;

class Test
{
    static void Main()
    {
        Regex regex = new Regex("([0-9]+),'(.)':([0-9]+),(L|R|'.')");
        Console.WriteLine(regex.IsMatch("1,' ':1,R"));
    }
}

"True"를 인쇄합니다.

따옴표 사이에 다른 문자가 있을 수도 있나요?인쇄되지 않는 문자가 있습니까?텍스트는 어디에서 오는가?

다음과 같이 변경해 볼 수 있습니다.

([0-9]+),'([^']+)':([0-9]+),(L|R|'.')

따라서 따옴표 사이에 두 개 이상의 문자가 일치할 수 있습니다.

다른 팁

.NET에서 시도하지는 않았지만 DOT는 언어와 구현에 따라 다릅니다. 노력하다:

([0-9]+),'([.| ])':([0-9]+),(L|R|'.')

사용 0x0020 단일 공간 문자와 일치합니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top