2013-03-05 4 views
2

Regex에서 꼭해야 할 일이 없기 때문에 어리석은 질문처럼 보일 수 있습니다.문자열 바꾸기 대신 Regex 바꾸기 사용

stringstring[].Split(' ')으로 나눕니다.
목적은 단어를 확인하거나 바꾸는 것입니다.

지금 데 문제는 단어을 대체 될 수 있도록, 그것이 정확히 일치 수있다,하지만 난 그것을 분할하고있어 방법과 함께있는 ( 또는 [이있을 수 있다는 것입니다 단어 분리.

지금까지 이와 같은 것을 사용하고 있습니다.
formattedText.Replace(">", "> ").Replace("<", " <").Split(' ')입니다.

현재로서는 문제가 없지만 [;\\/:*?\"<>|&']과 같은 특수 문자를 사용하고 싶습니다.

Regex와 같은 대체 방법보다 빠른 방법이 있습니까? 내 길은 최고의 답과는 거리가 먼 느낌입니다.

편집
This is an (example) string
당신이

당신이 원하는 경우

원하는이 옳은 일
This is an (example) string

+0

나는이 질문을 이해할 수 없다고 생각합니다. 이 특수 문자를 대체해야하는 대상은 무엇입니까? 예제 문자열을 보여 주면 도움이 될 것입니다. –

+0

문자열에서 모든 단어를 추출하려면 질문에 대한 답변이어야합니다. http://stackoverflow.com/q/2159026/1236044 – jbl

+0

@ Chirag64 죄송합니다 - 업데이트했습니다. – TheGeekZn

답변

0

나는 일에 대체 될 것이다 ->; \/: * "를 < > | & '교체 할 기호

string input = "(exam;\\/:*?\"<>|&'ple)"; 
     Regex reg = new Regex("[;\\/:*?\"<>|&']"); 
     string result = reg.Replace(input, delegate(Match m) 
     { 
      return " " + m.Value + " "; 
     }); 

당신은 전체 단어를 교체하려는 경우-ZA-Z0-9_

string input = "(example)"; 
     Regex reg = new Regex(@"\W"); 
     string result = reg.Replace(input, delegate(Match m) 
     { 
      return " " + m.Value + " "; 
     }); 
3

를 제외한 모든 문자를 대체하려는 경우, 당신은 그렇게 할 수있는이 같은 정규 표현식으로.

string text = "This is an example (example) noexample"; 
string newText = Regex.Replace(text, @"\bexample\b", "!foo!"); 

newText

는 여기서 핵심은 \b 단어 휴식 메타 문자라는 것이다 "This an !foo! (!foo!) noexample"

포함됩니다. 따라서 행의 처음이나 끝에서 일치하고 단어 문자 (\ w)와 단어가 아닌 문자 (\ W) 사이의 전환이 일치합니다. 그것과 \ w 또는 \ W를 사용하는 것의 가장 큰 차이점은 행의 처음이나 끝에서 일치하지 않는다는 것입니다.