Csharp: Найти и заменить совпадение строк между конкретными символами || в строке с помощью Regex - PullRequest
0 голосов
/ 16 июля 2011

У меня есть строка вроде:

string originalStringBefore = "http://www.abc.com?a=||ThisIsForRndNumber||&qq=hello&jj=||ThisIsForRndNumberAlso||";

Я хочу, чтобы каждая строка находилась между || быть замененным случайным числом.

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

Я не хочу делать это с помощью функций манипуляции со строками.

Ожидаемое решение / результат:

string originalStringAfter = "http://www.abc.com?a=||254877787||&qq=hello&jj=||6594741454||";

Ответы [ 3 ]

1 голос
/ 16 июля 2011
string originalStringBefore = "http://www.abc.com?a=||ThisIsForRndNumber||&qq=hello&jj=||ThisIsForRndNumberAlso||";

Random r = new Random();
Regex rgx = new Regex(@"\|\|.*?\|\|");
Console.WriteLine(rgx.Replace(originalStringBefore, "||" + r.Next(int.MaxValue) + "||"));
1 голос
/ 16 июля 2011

Похоже, вы хотите это регулярное выражение:

(?<=\|\|)\w+(?=\|\|)

, который находит буквенно-цифровые символы между || и оставляет только строки, содержащие не буквенно-цифровые символы (например, &).

Затем в C #:

public String ComputeReplacement(Match m) {
    return RandomNumberString();
}

resultString = Regex.Replace(subjectString, @"(?<=\|\|)\w+(?=\|\|)", new MatchEvaluator(ComputeReplacement));
0 голосов
/ 16 июля 2011

Найдите команду замены регулярного выражения, вставленную ниже

string result = Regex.Replace(originalStringBefore, @"\|\|.*?\|\|","||ReplaceCharactors||");

как написать выражение регулятора через этот сайт, надеюсь, это поможет вам

Спасибо.

...