Как сопоставить только часть слова с регулярным выражением? - PullRequest
2 голосов
/ 30 января 2020

Я пытаюсь извлечь номера домов из (голландских) адресов, используя следующую сущность регулярного выражения: (?: re \ Bstraat) \ s \ d +

Предполагается найти номера которые идут после слова "straat", но только в том случае, если у слова straat нет границы слова, т. е. он должен соответствовать:

"straat 78" в kerkstraat 78

Однако я сталкиваюсь с двумя проблемы. Во-первых, меня интересует только номер, а не улица, которая стоит перед ним. Я думал, что использование группы без захвата решит эту проблему, но я не уверен, что я использую это правильно.

Во-вторых, Dialogflow позволяет мне выбирать только целые слова в обучающих фразах. Когда я пытаюсь выбрать только «straat 65» в Wilhelminastraat 65, например, выбор просто привязывается к целому слову , как это . Но тогда он говорит мне, что аннотированный текст не соответствует типу сущности.

Редактировать: Я думаю, что я искал, был (?<=\Bstraat\s)(\d+). К сожалению, lookaround не поддерживается Dialogflow в соответствии с документацией, поэтому то, что я пытаюсь сделать, кажется невозможным (без выполнения).

...