2008-10-08 4 views
7

특정 문화권 (System.CultureInfo에서 제공)에서 다른 문자열과 일치하는 문자열에서 하위 문자열 색인을 찾으려고합니다..NET에서 부분 문자열 일치의 끝 찾기.

예를 들어 "ass"문자열은 독일 문화권의 "straße"에서 부분 문자열 "aß"와 일치합니다.

나는 무력에 의지하지 않고

culture.CompareInfo.IndexOf(value, substring); 

하지만를 사용하여 일치 항목의 시작 인덱스를 찾을 수 있습니다,이 개 문자가 3 일치하고,되지 않았 음을 식별하는 쉬운 방법은 무엇입니까?

+0

내 질문은 당신의 중복 실현 : http://stackoverflow.com/questions/2835400/case-insenstive-string-replace-that-correctly-works-with-ligatures-like- ss – usr

답변

0

정규 표현식은 ss 대 ß의 구별을 처리합니까?

2

캡처 그룹을 사용하는 경우 발견 된 정확한 일치를 캡처 할 수 있으며 일치하는 문자의 수를 결정할 수 있습니다.

예를 들어 보니 시간이 조금 조금 걸렸으므로 내 설명에서 알아낼 수 있기를 바랍니다.

아마도 나중에 내 대답을 기각 할 것입니다.

데이브

+0

특정 문화권에서 정규 표현식을 실행할 수 있다는 것을 알지 못했습니다. 어떻게 수행됩니까? –

+0

설명서에는 대/소문자를 구분하지 않는 작업이 기본적으로 문화권에 따른 것으로 명시되어 있습니다. 이 시점에서 Thread.CurrentCulture가 사용됩니다. 하지만 분명히 (.NET 2.0에서) "ß"와 "ss"는 일치하지 않지만 문화적으로는 동일합니다. 내 anser가 도움이되지 않습니다. –

+0

MS의 정규 표현식에 문제가 있음을 알고 있습니다. 대소 문자를 구분하지 않는 일치는 작은 대문자 k와 켈빈 기호를 일치시키지 못하고 (예 : 둘 다 대문자를 가지고 있음에도 불구하고) 멀티 바이트 문자를 처리하지 못합니다. –