2015-04-15 2 views
0

Попытка использовать упрощенный RegEx для решения проблемы замены emoji.Javascript: упрощенный RegEx для не-выражения в группе захвата

регулярное выражение: ((?!http)(\:\/))

контекст: Hello there, don't goto <a href="http://x.com">x.com</a>, they have bad service :/

Тем не менее захватывает как ": /" S в контексте. Я знаю, что есть метод захвата символов, не содержащий захвата, но я не смог найти модернизированную/упрощенную версию чего-то подобного.

ответ

2

Если вы не можете использовать lookbehinds, вы можете попробовать и умно расширить свое соответствие, например, I.e.

(:\/) 

Обратите внимание на дополнительное пространство, которое, конечно же, могло бы быть чем-то более сложным.

Update

(:\/)(?!\/) 

сделал трюк с использованием отрицательного предпросмотра (который поддерживает Javascript) для /.

+0

Да, проблема с пространством впереди в том, что он слишком широкий –

+0

Как насчет \ s для любого символа пробела? – SGD

+0

Я действительно смог решить его, просто включив exapture expr впоследствии для вторичного «/». –

Смежные вопросы