2012-05-14 9 views
0

Я хотел совместить слова в строке с обратным порядком.Регулярное совпадение порядка строк

Мы хотели поставить подтверждение для запроса пользователя, если имя существует в обратном порядке.

Например:

Если name столбец имеет значение, «Вирусные, теннис»

Теперь, если пользователь вводит новое имя со значением, «теннис, Вирусный»

Тогда как мы можем сопоставить обратный порядок слова с использованием регулярного выражения или каким-либо другим способом?

Я использую C# .net для разработки.

+0

Что вы подразумеваете под * совпадением обратного порядка слова *? – aioobe

+1

Pehaps, можете ли вы добавить язык, который вы используете? – 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 

Это будет делать трюк, однако, вы должны иметь в виду, что все будет получить немного грязный, если вы не хотят изменять порядок специальных символов, таких как запятая. Вы можете легко удалить их и выполнить любую проверку без специальных символов.

EDIT: Это зависит от того, что вы подразумеваете под специальными символами. Регулярное выражение [^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

Есть ли Regex для удаления специальных символов? – Viral

+0

@ Вирусный: Я изменил свой ответ. Если у вас есть какие-либо символы, которые вы не хотите удалять, просто добавьте их в переменную 'pattern', убедившись, что они находятся в квадратных скобках. – npinti

Смежные вопросы