Удалить подходящую подстроку, игнорировать пробелы - PullRequest
1 голос
/ 18 января 2010

Мне нужно удалить соответствующую подстроку, когда она найдена в строке 1, игнорируя пробелы и символы, такие как -.

Пример, который у меня есть:

string 1="The LawyerWhat happened to A&O's first female partner?The LawyerWhen Clare Maurice was made up at Allen & Overy (A&O) in 1985 she was the sole female partner at the firm. Twenty-five years later, gradual change in the";

Мне нужно сопоставить строку2 ниже в строке 1 и удалить ее из строки 1.

string 2="What happened to A&O's first female partner? - The Lawyer";

Большое спасибо

Ответы [ 3 ]

2 голосов
/ 18 января 2010

Похоже, это работает с вашим примером, но вы должны проверить это больше. Я предполагаю, что вы всегда ожидаете, что замена будет следовать той же схеме, где удаляются лишние пробелы и символы "-".

// renamed your variables: 1 is "input", 2 is "replaceValue"
string pattern = Regex.Replace(replaceValue.Replace("-", ""), @"\s{2,}", "");
pattern = Regex.Escape(pattern);
string result = Regex.Replace(input, pattern, "");
1 голос
/ 18 января 2010

Вероятно, это не лучший способ сделать это, но:

// I renamed the strings to source and pattern because 1 and 2 wouldn't be very clear
string result = Regex.Replace(source, Regex.Escape(pattern).Replace(" ", "[\s]*?"));
// Google shows we have an option such as
string result = Regex.Replace(source, Regex.Escape(pattern), RegexOptions.IgnoreWhiteSpace)

;

Не уверен насчет игнорирования символа "-".Попробуйте "Regex Buddy", это безумно полезно для написания регулярных выражений.У него даже есть опция «Копировать шаблон как регулярное выражение C #».

0 голосов
/ 18 января 2010

Это должно сработать:

1 = 1.Замена (2, строка. Пусто);

...