2009-07-12 3 views
0

이것은 매우 간단한 질문이지만 다소 엉망입니다."xxxxxxxxxx"캡처

"xxxxxxxxxx"와 일치하는 텍스트 섹션을 캡처 중입니다. 그것은 잘 작동합니다.

string pattern = "(?<quotePair>\"[^/\"]*\")"; 

가 지금은 "XXXXXXXXXX"을 캡처하는 새로운 패턴을 만들고 싶어 ... 내가 사용 :

string pattern2 = "(?<lrquotePair>“[^/\"“]*”)"; 

을 두 번째 패턴이 아무것도 잡을 몇 가지 이유. 내가 뭘 놓치고 있니?

+0

은 파이썬에서 잘 작동합니다. 아마도 언어 문제일까요? 어떤 언어를 사용하고 있습니까? – cobbal

+0

C# .NET을 사용하고 있습니다 –

답변

3

패턴이 설명하는 것보다 더 복잡합니다. 예를 들어 첫 번째 패턴은 "foo/bar"과 일치하지 않으며 두 번째 패턴은 “foo/bar” 또는 “foo"bar”과 일치하지 않습니다. 아마도 귀하의 의견은 해당 범주 중 하나에 해당합니까?

인코딩 문제가있는 경우 regex가 아닙니다. .NET 정규 표현식은 유니 코드를 잘 지원합니다. 그러나 처음 엔 올바른 인코딩으로 된 텍스트를 읽지 않았을 수 있습니다. 인쇄하여 공상적인 “” 따옴표가 아직 있는지 확인하십시오. 특히, 단일 인수 생성자 (또는 File.OpenText 도우미)를 사용하여 StreamReader 클래스를 사용하는 경우 입력에 대해 기본적으로 UTF-8 인코딩이 사용됩니다. 실제로는 거기에있는 것과 다를 수 있습니다.

+0

입니다. 감사 파벨. 그래, 나는 그들에게 그 안에 구체적인 세부 사항이있는 것을 의미했다. 그것은 문제가 아닙니다. 나는 똑같은 텍스트를 가져 와서 "to"와 "to"로 바꿀 수 있으며 갑자기 일치하지 않을 것이다. –

+0

나는 꽤 피곤하다. 두 번째 단락을 놓친 것 같습니다. 이것이 내 문제일지도 모른다. HtmlAgilityPack을 사용하여 StringWriter에 출력하고 있습니다. 이제 왜 그 캐릭터가 왜 튀어 나오게 될지 이해합니다. –

+0

내가 작업하고있는 웹 페이지는 charset = "ISO-8859-1"이고, StringWriter의 인코딩은 UnicodeEncoding입니다. 나는 HtmlAgilityPack으로 파일을 읽은 다음 StringWriter로 출력하고있다. 이것이 문제가 될 수 있습니까? 어떻게 수정합니까? –

1

Encoding might be getting in your way. 대신 \u0093\u0094으로 시도하십시오.

+0

고마워, 이런 것 같아. 링크를 살펴 보겠습니다. –

+0

방금 ​​시도했습니다. 문자열 패턴 2 = "(? \ u0093 [^/\" "* \ u0094)" 작동하지 않았지만 잘하면 피곤합니다 ... 그 정규식은 당신의 눈으로 맞습니까? –

+0

때로는 유니 코드가 뒤틀리는 것을 덜어 주었으면 좋겠다고 생각합니다 ... –

0

두 번째 정규식에 아무 문제가 없습니다. 입력 문자열이 맞습니까? 일치시키려는 문자는 일반 ASCII가 아니므로 문자 인코딩 불일치 문제가있을 수 있습니다.