BAS "давиться" сложным RegExp
-
Доброго времени суток.
Столкнулся с такой проблемой, на последней актуальной версии./(?<=<span\sclass="im_message_author_wrap">\s+.+<a\sclass="im_message_author\s+.+">).+?(?!<\/a>.+\s+style="display: none;")(?=<\/a>.+\s+.+">admin<\/span>)/g
Вот такой сложный RegExp в BAS невозможно адекватно выполнить. Кубики - отдают пустой результат, Выполнить скрипт - выкидывает ошибку, Яваскрипт в Браузере - тоже не работает с ним.
Даже в консоли хрома все норм.
Что это за такая классная регулярка - можно почитать тут
-
@andrwork Потому что это не для js выражение, наверное для php. В js нет таких конструкций ?<=, ?!
А насчет сложности, у меня в разы сложнее регулярки и ничего не давится.
-
@andrwork проблема не в басе...
вот это (?<=) и (?=) работает только если в них указаны точные неизменные данные, т.е. элементы (.* или .+) в них не прокатывают.
Здесь лучше выделять в регулярке несколько групп (в скобках) и брать нужную.
-
@Xstroy Что вы подразумеваете под неизменными данными? Я в спецификации таких конструкции вообще не встречал. Вот пример достаточно неизменный?
RegExp: (?<=Андрей )Петров Текст: Андрей Петров
Он тоже ничего не найдет.
-
@Denis_krsk а так?
(?<=Андрей ).*
-
@Xstroy said in BAS "давиться" сложным RegExp:
(?<=Андрей ).*
Хм. А кстати пример выше оказывается тоже отрабатывет. Раньше как-то пробовал не получалось