Как использовать регулярные выражения, чтобы получить часть строки в C # - PullRequest
1 голос
/ 14 января 2009

Я пытаюсь использовать

(?<key>.{5}keyword.{5}?)

для проверки "другое текстовое ключевое слово другой текст"

получит "ключевое слово кольца"

и я хочу, чтобы "akeyword other text" или "other string keyworda" или "akeywordc" тоже совпадали.

Как изменить регулярное выражение?


У меня есть длинная строка, и я хочу получить ключевое слово find и получить его с помощью строки и суффикса

требует 5 только образец, он может измениться на любое число, например, 50

У меня вопрос, если позиция ключевого слова меньше 5 и она не соответствует.

как получить строку с суффиксом или суффиксом с ключевым словом, если длина строки с суффиксом или суффиксом равна

неизвестная.


Извините, мой вопрос не ясен.

Я хочу получить get perfix или суффиксную строку с ключевым словом. и я хочу получить префикс или суффикс строки не более 5 слов.

пример:

"ключевое слово abcde abcde" Я хочу получить "ключевое слово abcde abcd"

и когда префикс строки меньше 5 слов

"ключевое слово abcde" Я хочу получить "ключевое слово abcd"

или строка суффикса меньше 5 слов

"ключевое слово abcd a" Я хочу получить "ключевое слово abcd a"

Ответы [ 4 ]

2 голосов
/ 14 января 2009

Может ли это быть тем, что вы ищете:

(?<key>.{0,5}keyword[\s\S]{0,5})
1 голос
/ 14 января 2009

Это?

(?<key>.{0,5}keyword.{0,5})

Вы можете использовать что-то вроде Регулятор , чтобы взломать, пока вы учитесь, как решить эту проблему; научить человека ловить рыбу и все такое.

1 голос
/ 14 января 2009

Не ясно, что вы хотите пройти и потерпеть неудачу; в частности, .{5} требует 5 символов перед keyword, поэтому я не уверен, как «akeywordc» должен совпадать. [\s\S]{5} говорит "5 пробелов или не пробелов" ... опять же, это требует 5 символов после (и, вероятно, может быть .{5}).

Итак: как вы хотите, чтобы он вел себя?

Например, (?<key>.{1,5}keyword.{1,5}) будет соответствовать 1–5 символам до или после (жадно).

0 голосов
/ 14 января 2009

Это может быть просто (.*?)keyword(.*?) или (.{0,5}) в соответствии с ответом Себастьяна, все равно это зависит от того, что вы подразумеваете под «неизвестным».

Вы имеете в виду, что приемлемо любое количество совпадений или только определенное количество совпадений, но вы не знаете это число до времени выполнения - в этом случае как узнать это число во время выполнения (мы не можем ответить что для тебя).

Было бы лучше, если бы вы опубликовали набор совпадающих примерных строк и несоответствующих примерных строк.


редактирование из OP, обновление 2: тогда, похоже, вам нужна комбинация ответов mark и sebastiens

(?<key>.{0,5}keyword.{0,5})

, который будет включать от 0 до 5 символов префикса и от 0 до 5 символов суффикса с соответствием

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...