2011-05-05 2 views
0

업데이트 :특수 문자 허용하지 않음

방금 ​​깨달은 점은 하나 하나의 특수 문자를 쓰는 대신 특수 문자를 사용하지 마십시오.

여기에 내가하는 일의 예가 나와 있습니다. http://cnn.com/news/latest.html&id=1&이 시작 또는 끝 부분에있는 경우에만 스트립합니다.

static String StripSpcialChar(String param) 
     { 
      String result = null; 
      if (param != null) 
      {     
       Regex re = new Regex("\\&|\\(|\\)|\\<|\\>|\\\"|\\;|\n|\r|\\`"); 
       result = re.Replace(param, ""); 
       result = result.Trim(); 
      } 
      return result; 
     } 

하지만 내 질문은, 어떻게 그들이있는 경우에만 시작 부분에 &을 제거하거나 종료 할 수있다 코드 아래

이 (+,(,),;,") 특수 문자를 제거합니다 그리고 그것을 잘 작동?

+0

경기 중'((? <= ^))'또는'((? = $))'이 될 것입니다 내 생각을 해 봅니다. - ** EDIT ** 또한 문자열에'@'접두어 (리터럴)를 사용하여 좀 더 읽기 쉬운 패턴을 만들 수 있습니다. –

+0

무엇을 허용합니까? –

+0

또는 .EndsWith 및 .StartsWith 메서드를 사용하여 마지막 문자와 첫 번째 문자를 확인하고 제거 할 수 있습니다. –

답변

0

테스트 및 작업. 이 표현을 사용

Regex re = new Regex("\\(|\\)|\\<|\\>|\\\"|\\;|\n|\r|\\`|^&|&$"); 

사용법 : 당신은 시작 또는 단어의 끝에서 제거해야하는 경우

Console.WriteLine(StripSpcialChar("ali&")); // prints ali 
Console.WriteLine(StripSpcialChar("&ali")); // prints ali 
Console.WriteLine(StripSpcialChar("a&li")); // prints a&li 

참고

,이 시도 :

Regex re = new Regex("\\(|\\)|\\<|\\>|\\\"|\\;|\n|\r|\\`|\b&|&\b"); 
+0

나는 단지, 모든 특수 문자를 쓰는 대신 특수 문자를 사용하지 말라는 것을 깨달았다. 캐릭터? –

1
"&this is a test&&&".Trim('&'); 
+0

+1, 간단하고 우아합니다. 나는 그것을 좋아한다. –

+0

여기에 내가하고있는 일의 예가있다 :'http : // cnn.com/news/latest.html & id = 1'은'&'가 시작이나 끝에있을 때만 떼어 낸다. –

+0

@AbuHamzah : 자, 우리가 여기에 URL을 말하면, 이것의 최종 목적은 무엇입니까? (왜 특수 문자를 스트라이핑합니까?) 유효한 방법이 거의 확실합니다. –

0

무엇 이것에 대해 :

string newString = string.Trim(oldString, '&'); 
0

정규식은 "문자열의 끝"과 $ "문자열의 시작"을 의미하는 ^을 사용
"^&|&$"
문자열로-시작하거나 종료 된 앰퍼샌드 일치해야합니다 (&)

1

Regex re = new Regex("(^&)|(&$)|\\(|\\)|\\<|\\>|\\\"|\\;|\n|\r|\\`"); 
+0

이것은 처음과 끝 또는 문자열에서 스트립 앰퍼샌드뿐 아니라 스트립 특수 문자 끄기 – rusty

+0

에서 내가 원하는 것을 수행하는 것처럼 보입니다. 나는 그 사실을 깨달았습니다. 매번 특별한 모든 문자를 쓰는 대신 특수 문자를 사용할 수 없습니까? 캐릭터? –