2012-05-14 2 views
0

문자열의 단어를 역순으로 일치시키고 싶습니다.문자열의 순서와 정규 표현식을 일치 시키려면

이름이 역순으로 존재하는 경우 사용자에게 확인을 요청했습니다. 예를 들어

: name 열은 값을 갖는다

경우 '바이러스, 테니스'

이제 사용자가 값 '테니스 바이러스'

이어서으로 새 이름을 입력하면

정규식 또는 다른 방법을 사용하여 단어의 역순을 어떻게 일치시킬 수 있습니까?

개발 용으로 C# .net을 사용하고 있습니다.

+0

단어 *의 역순을 매치하는 것이 무엇을 의미합니까? – aioobe

+1

아마도, 사용중인 언어를 추가 할 수 있습니까? – Shubham

+2

나는 문자열을 나누는 것이 좋을 것이라고 생각하고 그 반대 방향으로 반복한다. – npinti

답변

0

당신과 같이 뭔가를 Regex.Split(String input, String regex)를 살펴보고 할 수있는 :

String[] userEntry = Regex.Split(userString, "\\s+"); 
StringBuilder sb = new StringBuilder() 
for (int i = userEntry.Length -1; i >= 0; i--) 
{ 
    sb.append(userEntry[i]).append(" "); 
} 

String result = sb.ToString(); 
//Do Validation 
그러나, 당신이 일이 당신이 경우에 조금 혼란스러워 것이다 명심해야 트릭을 할 것

쉼표와 같은 특수 기호의 순서를 변경하고 싶지는 않습니다. 특수 기호없이 쉽게 제거하고 유효성 검사를 수행 할 수 있습니다.

편집 : 특수 기호의 의미에 따라 다릅니다. 정규식 [^a-zA-z0-9]+은 문자 (대소 문자)가 아니며 숫자가 아닌 문자와 일치합니다. 따라서 다음과 같이 쉽게 할 수 있습니다.

string input = ... 
    string pattern = "[^a-zA-z0-9]+"; 
    string replacement = ""; 
    Regex rgx = new Regex(pattern); 
    string result = rgx.Replace(input, replacement); 

위의 내용은 문자와 숫자로만 이루어진 문자열을 생성해야합니다. 공백도 제거됩니다.

+0

특수 기호를 제거 할 정규식이 있습니까? – Viral

+0

@ 바이러스 성 : 내 대답을 수정했습니다. 제거하고 싶지 않은 기호가 있다면'pattern' 변수에 추가하고 그 기호가 대괄호 안에 있는지 확인하십시오. – npinti

관련 문제