Регулярное выражение: удаление символов после "/" в предложении - PullRequest
1 голос
/ 08 февраля 2020

У меня есть текст, который был помечен с использованием библиотеки НЛП:

text=("I/PRP guess/VBP my/PRP$ point/NN that/IN I/PRP be/VBD try/VBG to/TO communicate/VB ,/, be/VBZ how/WRB do/VBP these/DT pedo/NN ring/NNS get/VBP so/RB big/JJ before/IN they/PRP be/VBP expose/VBN ./.)"

, и у меня есть слова:

words=["my", "I"]

Я хочу найти все вхождения слова в текст и для этой части у меня есть:

pattern = r'\W.*?({})\W.*?'.format('|'.join(words))
s = re.findall(pattern, text, flags=re.IGNORECASE)

, но сначала мне нужно игнорировать части, которые идут после "/", иначе ничего не совпадает. Как я могу это сделать?

1 Ответ

0 голосов
/ 08 февраля 2020

Я не уверен, если следующее регулярное выражение работает без модификаций с двигателем python regex. В своих тестах я использовал реализацию регулярного выражения. NET.

Чтобы найти все указанные слова, используйте регулярное выражение: \b(my|I)\b

Если вы хотите игнорировать все совпадения слов, где a / - предыдущий символ, вы можете добавить отрицательный взгляд (?<!/). \b(?<!/)(my|I)\b

\b - начало или конец слова.

...