# Отрицательный просмотр назад не работает в регулярном выражении для отслеживаемых слов

**URL:** https://meta.discourse.org/t/negative-lookbehind-not-working-in-watched-words-regex/271981
**Category:** Support
**Tags:** watched-words
**Created:** [18.Июль.2023 12:56:06 UTC](https://meta.discourse.org/t/negative-lookbehind-not-working-in-watched-words-regex/271981 "2023-07-18T12:56:06Z")
**Posts on this page:** 9
**Page:** 1

<div class="post-metadata">

### Author: ![tkrunning](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/tkrunning/32/119481_2.png) [@tkrunning](https://meta.discourse.org/u/tkrunning)
#### Post date: [18.Июль.2023 12:56:07 UTC](https://meta.discourse.org/t/negative-lookbehind-not-working-in-watched-words-regex/271981/1 "2023-07-18T12:56:07Z")

</div>

Похоже, выражения с негативным просмотром назад (которые _должны_ быть допустимы как в синтаксисе регулярных выражений Ruby, так и в JS, причём в последнем — начиная с ECMAScript 2018) не работают в разделе «Следящие слова».

Вот пример:

` (?<!new\s)\bcar\b` должен находить вхождения слова `car`, которым не предшествует ` new`.

Например, он должен находить `car` в этом предложении:

`He drives a car`

Но не должен находить в этом предложении:

`He drives a new car`

Однако при добавлении в раздел «Следящие слова» возникает следующая ошибка:

![Regex error](https://cdck-file-uploads-global.s3.dualstack.us-west-2.amazonaws.com/meta/original/4X/0/7/f/07f6b4b4d556558a159f42ac22084d3c888489fc.png)

Это ограничение реализовано намеренно или это ошибка? Или же выражение нужно записать в другом формате?

---

<div class="post-metadata">

### Author: ![Canapin](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/canapin/32/119591_2.png) [@Canapin](https://meta.discourse.org/u/Canapin)
#### Post date: [18.Июль.2023 14:13:33 UTC](https://meta.discourse.org/t/negative-lookbehind-not-working-in-watched-words-regex/271981/2 "2023-07-18T14:13:33Z")

</div>

Добро пожаловать, Томас 🙂

У меня эта проблема не возникает:

 ![image](https://global.discourse-cdn.com/meta/original/4X/4/0/0/400db5d17575ab6ca54136f4f527f5d75181fd9c.png)

---

<div class="post-metadata">

### Author: ![tkrunning](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/tkrunning/32/119481_2.png) [@tkrunning](https://meta.discourse.org/u/tkrunning)
#### Post date: [18.Июль.2023 17:23:08 UTC](https://meta.discourse.org/t/negative-lookbehind-not-working-in-watched-words-regex/271981/3 "2023-07-18T17:23:08Z")

</div>

Это тоже работает у вас для автоматической ссылки?

---

<div class="post-metadata">

### Author: ![Canapin](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/canapin/32/119591_2.png) [@Canapin](https://meta.discourse.org/u/Canapin)
#### Post date: [18.Июль.2023 17:41:41 UTC](https://meta.discourse.org/t/negative-lookbehind-not-working-in-watched-words-regex/271981/4 "2023-07-18T17:41:41Z")

</div>

Кажется, да.

 ![Screenshot_20230718_193943_Chrome](https://global.discourse-cdn.com/meta/original/4X/d/f/4/df4b57b809edda0093adb29bceb0c4382f0a8e10.jpeg)  
 ![Screenshot_20230718_194053_Chrome](https://global.discourse-cdn.com/meta/original/4X/9/1/a/91aa79db8fe2bdda2c460ebdf1592578e03e8d82.jpeg)

---

<div class="post-metadata">

### Author: ![tkrunning](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/tkrunning/32/119481_2.png) [@tkrunning](https://meta.discourse.org/u/tkrunning)
#### Post date: [18.Июль.2023 18:14:08 UTC](https://meta.discourse.org/t/negative-lookbehind-not-working-in-watched-words-regex/271981/5 "2023-07-18T18:14:08Z")

</div>

Странно, что у меня тоже не работает. Сейчас я на версии 3.1.0.beta4, обновлюсь до последней и попробую снова…

---

<div class="post-metadata">

### Author: ![tkrunning](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/tkrunning/32/119481_2.png) [@tkrunning](https://meta.discourse.org/u/tkrunning)
#### Post date: [18.Июль.2023 18:18:16 UTC](https://meta.discourse.org/t/negative-lookbehind-not-working-in-watched-words-regex/271981/6 "2023-07-18T18:18:16Z")

</div>

Интересно, похоже, это зависит от браузера. В Safari я получаю ошибку, а в Chrome — нет. Если добавить это в Chrome и открыть список в Safari, ошибка появится там.

Но, думаю, пока я могу просто проигнорировать это.

---

<div class="post-metadata">

### Author: ![Canapin](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/canapin/32/119591_2.png) [@Canapin](https://meta.discourse.org/u/Canapin)
#### Post date: [19.Июль.2023 09:39:26 UTC](https://meta.discourse.org/t/negative-lookbehind-not-working-in-watched-words-regex/271981/7 "2023-07-19T09:39:26Z")

</div>

Я попробовал это в Chrome (Windows) и Safari 16.5.2, но так и не смог воспроизвести вашу проблему. 🤔

---

<div class="post-metadata">

### Author: ![tkrunning](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/tkrunning/32/119481_2.png) [@tkrunning](https://meta.discourse.org/u/tkrunning)
#### Post date: [03.Август.2023 10:24:38 UTC](https://meta.discourse.org/t/negative-lookbehind-not-working-in-watched-words-regex/271981/8 "2023-08-03T10:24:38Z")

</div>

Оказывается, это поддерживается только начиная с Safari 16.4, а у меня стояла версия 16.3.

Тем не менее, это по-прежнему вызывает у меня другие проблемы (например, невозможность сохранить настройки пользователя):

> [@What could be causing 500 errors when saving user preferences?](https://meta.discourse.org/t/what-could-be-causing-500-errors-when-saving-user-preferences/273790/3):
>
> So I guess it might actually have been this error: I figured that one was just showing up due to this issue: However, it turns out it’s all related. Here are the full logs: Info: RegexpError (invalid pattern in look-behind: /((?\<!estonia.\*\s)\be-residence\b(?!.\*estonia))/i) app/services/word\_watcher.rb:264:in `initialize' app/services/word_watcher.rb:264:in `new' app/services/word\_watcher.rb:264:in `block in replace' app/services/word\_watcher.rb:262…

---

<div class="post-metadata">

### Author: ![JammyDodger](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/jammydodger/32/254611_2.png) [@JammyDodger](https://meta.discourse.org/u/JammyDodger)
#### Post date: [02.Сентябрь.2024 10:29:50 UTC](https://meta.discourse.org/t/negative-lookbehind-not-working-in-watched-words-regex/271981/9 "2024-09-02T10:29:50Z")

</div>


