Я пытаюсь найти кратчайшую последовательность символов между словами «I» и «не согласен» (не чувствителен к регистру). Я прочитал все похожие вопросы о SO, но ни одно из решений, похоже, не работает для меня. Вот пример предложение, которое вызывает у меня горе:Как извлечь наименьшее количество символов между двумя словами?
As an American, I must disagree with you.
А вот моя догадка, как на регулярных выражений шаблона:
I(.*?)disagree
Я хочу, чтобы захватить только «должен», но вместо этого я захватываю более длинную строку, «может, я должен». Я надеюсь не указывать, что за «Я» должно следовать что-то другое, как пробел. Потому что, тогда я бы ничего не зафиксировал в таком предложении, как «Я не соглашусь с этим». Я также не хочу настаивать на том, чтобы «я» был капитализирован. В принципе, я просто хочу, чтобы наименее жадный матч был возможен. Этот сайт является одним из тех мест, которые я использую для проверки. Решение:
http://regexpal.com/?flags=gi & регулярок = I% 28 *% 3F% 29% 20disagree & вход = As % 20an% 20American% 2C% 20I% 20must% 20disagree% 20with% 20you.
Используйте '\ b' требовать * слово * граничное вокруг захваченной части. Затем собрать все матчи и выбрать самый короткий? – DCoder
Это реальный прецедент? – Gumbo
Если вход «Я не согласен», вы хотите '' kinda "' или '' nda "'? – user2357112