2013-11-23 3 views
0

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

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

Например, я написал регулярное выражение для согласования слов в порядке, например:

(?=.*?(I|need|your))(?=.*?(help|assistance|support|with|this|regex)).*?(?:\?)

и соответствует:

I think I need your help? I need your assistance with this regex? I don't want your support.

, но проблема в том, что она соответствует только " I "и" help "в первом предложении. Во втором предложении он соответствует только «Я» и «помощь».

Я пытаюсь выяснить, как получить его в соответствие, поскольку многие из ключевых слов, чтобы как можно так:

«I», «потребность», «помощь» для первого предложения. «I», «need», «help», «with», «this», «regex» для второго предложения.

, но в то же время я не хочу его соответствие что-то вроде:

«потребность», «Я», «с», «помощь», потому что это не в порядке.

Есть ли способ, которым я могу это сделать? Я обычно тестирую свои регулярные выражения с помощью: http://regex101.com/ и используя g как флаг, но я не могу понять, как написать такое регулярное выражение.

Я смог подделать предложение, используя "\\b[A-Za-z0-9-_]+\\b".

Любые подсказки?

ответ

0

Сначала отметьте своим регулярным выражением. Затем вы можете проверить, действительно ли это слово с определением с одним из этих apis https://www.google.com/#q=dictionary+api

Смежные вопросы