2012-04-23 2 views
0

안녕하세요. 이렇게해야합니다.정규식 패턴 일치

Actually **ctu** is a good university but **ctu's** is not. There are many **,ctus,** present. 

내가 원하는 것은, 이처럼 문자열에 ctu를 바꾸려고합니다. 내가 실제로 단어 내부 CTU를 대체 할 해달라고

A**<s>ctu<e>**ally **<s>ctu<e>** is a good university but **<s>ctu's<e>** is not. There are many **,ctus,** present. 

:

Actually **<s>ctu<e>** is a good university but **<s>ctu's<e>** is not. There are many **,<s>ctus<e>,** present. 

그러나 다음과 같은 패턴 내가 같이 넣어 밖으로 받고 있어요

**\\bctu*(?:['\\\\|""\\\\]*)\\w+\\b** 

. 또한 " ,ctus, "" ,<s>ctus<e>, "으로 바꿔야합니다.
정규식을 사용하여 어떻게 달성 할 수 있습니까? 나는 C#에서 이것을 필요로한다. csharp.

미리 감사드립니다.

+0

"나는"ctus "를"ctus "로 대체해야합니다. 그 차이점은 무엇입니까 ?? – Tigran

+0

@Tigran, 몇 가지 코드 형식으로 다시 확인하십시오 :-) –

답변

0

다음 정규식은 예에 나와있는 모든 경우와 일치합니다.

+0

이것은 나를 도왔습니다. 조안나에게 감사드립니다. –

0

당신은 @"\bctu\b"을 찾고 (양쪽에 단어 경계 "CTU"그래서 ctu하지만 Actually, ctu's, 또는 ,ctus, 일치)에 관계없이 어디를 첫 번째 검색 패턴 및 ",ctus," (정확히 문자열 ,ctus,을위한입니다 단어에 빠질 수도 있음)를 두 번째 검색 패턴으로 사용합니까? 이 두 항목을 동시에 검색하려면 @"(\bctu\b|,ctus,)"을 사용할 수 있습니다.

약간의 차이는 있지만 "" 대신 @"" 표기법 (verbatim strings)을 사용하면 C#에서 정규 표현식 리터럴을 훨씬 쉽게 작성할 수 있습니다. 예 : 정규 표현식에서 단어 경계를 이해하려면 @"\b" 또는 "\\b"으로 표현 될 수 있고 \"\\\\" 또는 @"\\" 인 문자로 표시되어야합니다. \b이어야합니다. 첫 번째 방법은 특히 복잡한 경우에 더 읽기 쉽습니다.

이 질문에 답을 얻지 못하면 예상되는 입출력에 대한 명확한 예를 제시하십시오. \1 위의 일치에 대한 역 참조이고

@"(\bctu(?:'\w+)?\w*\b)" 

가 그럼 그냥 @"<s>\1<e>"로 경기를 바꿉니다

+0

'\ bctu \ b'는'u'와'''사이에 단어 경계가 있기 때문에 (부분적으로)'ctu's '와 일치합니다. –