Подстановка слов с положительным взглядом - PullRequest
0 голосов
/ 29 сентября 2019

У меня есть персидский текст, который, конечно, написан справа налево. Я хотел бы найти спряжения глаголов. Например, если применить приведенное ниже регулярное выражение (см. В reg101 )::

(\w+)(?=م|ی|یم|م|ن)

к последующим и заменить каждое совпадение на «برد» в качестве прошлого ствола

1008 * رفتم رفتی رفت رفتیم رفتید رفتند 1010 * پاشیدم پاشیدی پاشید پاشیدیم پاشیدید پاشیدند 1012 * خوردم خوردی خورد خوردیم خوردید خوردند

нужно получить три одинаковыхследующие строки:

بردم بردی برد بردیم بردید بردند # Я взял, вы (единственное число) взяли, он / она взяли, мы взяли, вы (множественное число) взяли, они взяли

بردم بردی برد بردیم بردید بردند

بردم بردی برد بردیم بردید بردند

Однако это возвращает следующие данные. * 10 * * * * * * رفت بردم بردید بردند

بردم بردی بردید بردم بردید بردند

بردم بردی خورد بردم بردید بردند

Я сделал неправильные курсив и жирный шрифт. Я пробовал и другие выражения регулярных выражений:

Если мы попробуем

(\ w {3}) (? = م | ی | یم | م | ن)?

возвращает правильный результат для

رفتم رفتی رفت رفتیم رفتید رفتند

и

(\ w {4}) (? = م | ی | یم | م | ن)?

вернет правильный результат, когда на вход введена третья строка, то есть

خوردم خوردی خورد خوردیم خوردید خوردند

или

(\ w {5}) (? = م | ی | یم | م | ن)?

вернет правильный результат, когда input - вторая строка, то есть

پاشیدم پاشیدی پاشید پاشیدیم پاشیدید پاشیدند

Если бы мы могли иметь регулярное выражениенапример, чтобы определить число внутри {} в \ w {5}, это единственное регулярное выражение будет перечислять спряжение глагола для любого данного глагола в неопределенной форме.

Любая помощь будет принята с благодарностью.

CS

...