regex - 基于预定义文本字符串的复杂正则表达式来阻止色情

我正在寻找完美的 1 行正则表达式模式来使用我的内容阻止软件来阻止大量色情明星的名字。

该软件完全符合正则表达式,并接受任何编写良好的正则表达式。

举个例子,这是我目前使用的一行——这些行在某种程度上是相同的,第一行阻止所有以我的预定义单词列表开头的内容,第二行阻止所有以我的预定义单词列表结尾的内容。

(\b(cohf|cock(s)?|cum(s)?|cutie(s)?|creamy(-)?pie(s)?))(-)?\w+\b
\w+(-)?((cam(s)?|cohf|cock(s)?|cum(s)?|cutie(s)?|creamy(-)?pie(s)?)\b)

现在,我有一个如下所示的列表:

**pornstar1 name**
pornstar2 name
pornstar3 name
some-other name-here

我希望提供的正则表达式阻止任何/所有 URL,其中名称的两个部分出现 - 示例:

  • www.alink-to-pornstar1.com
  • www.alink-to-pornstar1-name.com

提前致谢

最佳答案

  1. 获取 url 并删除所有 [^a-zA-Z] - 用空字符串替换它们
  2. 列出所有不允许使用的单词或短语,并按照 (1) 进行操作
  3. 现在使用这样的列表将所有带有 | 字符的关键字连接到一个正则表达式字符串
  4. 检查此正则表达式是否与您在 (1) 处修改的 url 匹配

有变量 urllist,单行 jQuery 解决方案是:

url.replace(/[^a-z]/gi,'').match(new RegExp("("+$.map(list,function(e){return e.replace(/[^a-z]/gi,'');}).join('|')+")"))!=null

如果 url 包含 list 中的一些受限单词或短语,则结果为 true

https://stackoverflow.com/questions/11587871/

相关文章:

xml - 有没有比 <!ENTITY> 更好的方法来重用 DocBook 中的复杂表格?

hibernate - JPA/JPQL : AS identifier disallowed in

eclipse - 如何将当前 Eclipse 文本编辑器光标位置传递给外部工具?

ruby-on-rails-3 - 将生成的图像文件保存为回形针附件

ruby-on-rails - 页面加载完成后图像消失

python - 在 PyGame (SDL) 中使用 Cairo 时的字节顺序

python - 使用 Python 进行平台无关的文本散列

arrays - 确定网格上的点是否为 "trapped"(封闭)

wix - 如何在不调用安装的情况下执行 MSI 中存在的自定义操作?

python - Outlook 超链接的格式是什么?