# Watched Words Trick

**URL:** <https://meta.discourse.org/t/watched-words-tricks/153905>\
**Category:** Feature\
**Tags:** watched-words\
**Created:** [2020 年 6 月 5 日午前 8:34 UTC](https://meta.discourse.org/t/watched-words-tricks/153905 "2020-06-05T08:34:05Z")\
**Posts on this page:** 1\
**Showing post:** 1

<div class="post-metadata">

**Author:** ![RGJ](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/rgj/32/523185_2.png) [@RGJ](https://meta.discourse.org/u/RGJ)\
**Post date:** [2020 年 6 月 5 日午前 8:34 UTC](https://meta.discourse.org/t/watched-words-tricks/153905/1 "2020-06-05T08:34:05Z")

</div>

監視する単語の大きなリストを正規表現に変換している最中に、フィルタを回避する方法をいくつか発見しました。これらは「通常の」監視単語にも正規表現にも両方適用可能です。

**二重スペース** : 監視する単語が `forbidden word` の場合、2つの単語の間に複数のスペースを挿入することで回避できます。面白いことに、投稿が処理された後、二重スペースは削除されるため、最終的なテキストでは完全に目に見えなくなります。

- 正規表現でこれを防止する方法: `forbidden\s*word` を使用します。
- 正規表現を使わずにこれを防止する方法: 解決策は見つかりませんでした。

**アンダースコアの使用** で単語境界を回避する:

- 正規表現なしの場合: 監視する単語をアンダースコアで囲むと、イタリック体で表示され、許可されます。つまり、フィルタが `forbidden` の場合、`_forbidden_` は許可されます。

- 正規表現の場合: 通常、単語境界は `\b` を使用した場合にのみチェックされますが、その場合でもアンダースコアが優先されます。つまり、フィルタが `\bforbidden\b` の場合、`_forbidden_` は許可されます。

- 正規表現でこれを防止する方法: `\b` の代わりに `[\b\_]` を使用します。  
_編集：これはうまくいかないようです_。  
単語境界を削除する方法も考えられますが、その場合、`cumulative` や `title` のような単語を誤って禁止してしまうリスクがあります 😉

- 正規表現を使わずにこれを防止する方法: 解決策は見つかりませんでした。

---

_[View the full topic](https://meta.discourse.org/t/watched-words-tricks/153905)._
