Я новичок в AHK, я написал несколько сценариев. Но с моим последним сценарием я застрял с REGEX в AHK. Я хочу сделать отчет о структуре текстов, которые я делаю.
Для этого я настроил систему:
- предложения, заканчивающиеся на '.', Являются важные предложения с "-". (переменная 'Vimportant'), НО БЕЗ слов, упомянутых для 'Vanecdotes2' или 'Vdelete2' cfr. 4
- предложения, заканчивающиеся на '. *', Являются анекдотами (переменная 'Vanecdotes1'), где я поставил звездочку вручную после точки.
- предложения, оканчивающиеся на «.!», Являются нерелевантными предложениями и должны быть удалены (переменная «Vdelete1»), где я поставил звездочку вручную после точки.
- дополнительная опция, которую я хочу реализовать, - это слова, которые нужно обнаружить в предложении, чтобы предложение автоматически добавлялось в переменную 'Vanecdotes2' или 'Vdelete2'
Случайный пример было бы это (я уже поставил! и * после предложения (почему это не важно) и из которых «приобретение» является примером op Vanecdotes2 из моего пункта 4 выше):
Последняя процедура 19/8 / 2019.
Normal structure x1.!
Normal structure x2.!
Abberant structure x3, needs follow-up within 2 months.
Structure x4 is lower in activity, but still above p25.
Abberant structure x4, needs follow-up within 6 weeks.
Normal structure x5.
Good aqcuisition of x6.
Таким образом, вывод Regex в переменных должен быть
Last procedure on 19/8/2019.
Normal structure x1.! --> regex '.!' --> Vdelete1
Normal structure x2.! --> regex '.!' --> Vdelete1
Abberant structure x3, needs follow-up within 2 months. --> Regex '.' = Vimportant
Structure x4 is lower in activity, but still above p25.* --> regex '.*' = Vanecdote1
Abberant structure x4, needs follow-up within 6 weeks. --> Regex '.' = Vimportant
Normal structure x5.! --> regex '.!' --> Vdelete1
Good aqcuisition of x6. --> Regex 'sentence with the word acquisition' = Vanecdote2
И вывод должен быть:
'- Last procedure on 19/8/2019.
- Abberant structure x3, needs follow-up within 2 months.
- Abberant structure x4, needs follow-up within 6 weeks.
. Structure x4 is lower inactivity, but still above p25.
. Good aqcuisition of x6.
Но у меня было много проблем с регулярным выражением, особенно с выбором предложений, заканчивающихся на * или! Но также и с критериями исключения, они просто не хотят этого делать.
Поскольку у AHT нет действительно хорошего тестера, я сначала протестировал его в другом тестере регулярных выражений, и я планировал «перевести» позже к AHK-коду .. но это просто не работает. (поэтому я знаю, что в приведенном ниже скрипте я использую язык AHK с регулярным выражением nonAHK, но я просто добавил для иллюстрации вместе)
Это то, что у меня сейчас есть:
Send ^c
clipwait, 1000
Temp := Clipboard
Regexmatch(Temp, "^.*[.]\n(?!^.*\(Anecdoteword1|Anecdoteword2|deletewordX|deletewordY)\b.*$)", Vimportant)
Regexmatch(Temp, "^.*[.][*]\n")", Vanecdotes1)
Regexmatch(Temp, "^.*[.][!]\n")", Vdelete1)
Regexmatch(Temp, "^.*\b(Anecdoteword1|Anecdoteword2)\b.*$")", Vanecdotes2)
Regexmatch(Temp, "^.*\b(deletewordX|deletewordY)\b.*$")", Vdelete2)
Vanecdotes_tot := Vanecdotes1 . Vanecdotes2
Vdelete_tot := Vdelete1 . Vdelete2
Vanecdotes_ster := "* " . StrReplace(Vanecdotes_tot, "`r`n", "`r`n* ")
Vimportant_stripe := "- " . StrReplace(Vimportant, "`r`n", "`r`n- ")
Vresult := Vimportant_stripe . "`n`n" . Vanecdotes_ster
Для "перевода на AHK" я попытался сделать ^.*\*'n
из рабочего (не ахк) регулярного выражения ^.*[.][*]\n
.