Показать сообщение отдельно
  #1 (permalink)  
Старый 09.05.2022, 08:19
Новичок на форуме
Отправить личное сообщение для Laks Посмотреть профиль Найти все сообщения от Laks
 
Регистрация: 09.05.2022
Сообщений: 5

Прошу помочь со сложным регулярным выражением
Здравствуйте!
Я не программист. Так, начинающий любитель. Поэтому можете сразу кинуть в меня тапок. Для начала.
Суть вопроса:
я давно подсел на один MUD. И захотел максимально его автоматизировать , используя js.
Однако столкнулся с ситуацией, когда просто не смог создать одно (ну два) регулярное выражение, которое бы матчило определенные места строк типа:
Bobby pierces an elite guard very hard.
Bobby pierces an elite guard extremely hard.
Bobby pierces an elite guard.
Bobby barely pierces an elite guard.
An elite guard pierces Bobby very hard.
An elite guard pierces Bobby extremely hard.
An elite guard pierces Bobby.
An elite guard barely pierces Bobby.

Из этих строк надо выбрать «Bobby» и «An elite guard». Причем в «An elite guard» могут быть символы «’» «,» «-» (например «En’gla, master of maces») и состоять оно может как из нескольких слов, так и из одного.

Сам я смог родить только подобное:
/^(\w+)\s(cleav|crush|slash|bludgeon|claw|drain|hit |pierc|shoot|sting|whip|bit|smit|stab)(e|es|s)\s([\w\s\'\-\,]+)(?:.|very|extrem)/
/^([\w\s\'\-\,]+)\s(?:barely)\s?(cleav|crush|slash|bludgeon|claw| drain|hit|pierc|shoot|sting|whip|bit|smit|stab)(e| es|s)\s(\w+)(?: very| extrem)/
но оно не работает корректно (сутками сидел, пытаясь переделывать так или иначе).
Может быть вы сможете мне помочь в написании регэкспа для моей задачи? Буду вам очень благодарен.
Ответить с цитированием