#c# #string
#c# #строка
Вопрос:
Мой предыдущий вопрос был закрыт, потому что было упомянуто, что аналогичный вопрос уже был задан и на него был дан ответ. Я пытался найти что-то подобное, но не могу, поэтому постараюсь рассказать подробнее.
У меня есть файл, который я читаю построчно. В каждой строке я ищу конкретную фразу: "see {number}."
или "See {number}."
Например:
see 112.
See 4.
etc.
Проблема здесь в том, что я не могу использовать эту конкретную фразу, потому что мне нужно найти разные строки, которые, как я просто знаю, начинаются с «see», за которым следует любое «число», заканчивающееся точкой.
Сначала я подумал, что было бы лучше использовать какое-то регулярное выражение. Но я немного беспокоюсь о производительности.
В любом случае, после того, как я установлю, что мне нужно встроить это в код. Добавление определенного тега до и после строки. Так, например, когда я нашел «см. 112». я хочу заменить его, <link={found_number}>see 112.</link>
например, на: <link=112>see 112.</link>
Я был бы благодарен за любые предложения, как этого добиться.
Комментарии:
1. Это кажется идеальным для регулярного выражения и для чего-либо меньшего, чем очень большие объемы текста, я бы не ожидал каких-либо проблем с производительностью — вы проверили, что такие проблемы есть?
2. Проблема в том, что я не могу понять синтаксис для всего документа. С одной записью проблем нет, но когда я предполагаю, что таких записей может быть около ~ 100, я не уверен, как определить их все, извлечь из них найденное значение, а затем заменить его.
3. Существует
Replace()
метод, который сделает все это:string result = Regex.Replace(input_text, @"b(see) (d )", @"<link=$2>$1 $2.</link>", RegexOptions.IgnoreCase);
4. Пожалуйста, покажите, что у вас есть на данный момент, чтобы мы могли видеть, где это не работает. Где находится код, который считывает файл? Как вы в настоящее время анализируете строки? Вы можете использовать
IndexOf()
, чтобы получить индекс слова"see"
и снова найти.
. Затем вы можете попытаться разобрать текст между ними в целое число, используяint.TryParse
. Но если вы не покажете нам, что у вас есть, мы не сможем понять, что не так.5. @AlexK. спасибо, это то, что я искал. Вы должны отправить в качестве ответа.