Заменить часть строки, оставив остальную часть нетронутой? - PullRequest
1 голос
/ 16 июня 2011

Я делаю веб-приложение asp.net (с C #), которое позволяет пользователям копировать / вставлять свои записи, а затем приложение выполняет поиск контента по соглашениям Великобритании и США, например,

в автомобильном двигателе Великобритании.покрытие помещения называется «капот», в то время как в США оно называется «капот», поэтому программа посоветует пользователю изменить слово с капота на капот, если он / она ищет соглашения, основанные на США (пользователь может переключаться между соглашениями Великобритании или США).с помощью переключателей).Условные обозначения хранятся в базе данных.

Мой вопрос заключается в том, что это не всегда «капот» или «капюшон», иногда авторы используют такие слова, как «капот» или «капюшон», поэтому в конце добавляется «s»полностью меняет слово, как я могу изменить фактическое слово, сохраняя при этом остальную часть неповрежденной, как, например, капоты должны быть заменены на колпаки (сохраняя «s» нетронутыми при изменении фактического слова)?

Спасибо.

Ответы [ 2 ]

0 голосов
/ 16 июня 2011

Я предполагаю, что вы хотите обнаружить капот с пробелами после / до или до конца / начала укуса.

тогда я бы предложил использовать регулярные выражения.

рассмотрите это регулярное выражение: (?i)^(.+ )?(bonnet)(s?)( .+)?$

(?i) означает регистр не учитывается,

Теперь проверьте этот код:

string replacedText = Regex.Replace("ssdf bonnets sdf sdf sdf ", @"(?i)^(.+ )?(bonnet)(s?)( .+)?$", "$1hood$3$4");

Надеюсь, я помог

0 голосов
/ 16 июня 2011

попробуйте

if(Convention=="UK")
{
  MyString = MyString.Replace("hood","bonnet");
}
else if(Convention=="US")
{
  MyString = MyString.Replace("bonnet","hood");
}
...