├── license.txt ├── README.textile └── en.txt /license.txt: -------------------------------------------------------------------------------- 1 | This work is licensed under the Creative Commons Attribution 3.0 2 | Unported License. To view a copy of this license, visit 3 | http://creativecommons.org/licenses/by/3.0/ or send a letter to 4 | Creative Commons, 171 Second Street, Suite 300, San Francisco, 5 | California, 94105, USA. -------------------------------------------------------------------------------- /README.textile: -------------------------------------------------------------------------------- 1 | h1. Overview 2 | 3 | This project aims to make available a list of regular expression which match vulgar words. The list is far from comprehensive, but hopefully can be used as a first line of defense. 4 | 5 | As a general rule, words which can have a legitimate use (say _hancock_) must be exact matches to (@^(c|k|ck|q)[o0](c|k|ck|q)[s$]?$@) 6 | 7 | For best performance, if your library supports it, consider enabling explicit captures. -------------------------------------------------------------------------------- /en.txt: -------------------------------------------------------------------------------- 1 | ^[a@][s\$][s\$]$ 2 | [a@][s\$][s\$]h[o0][l1][e3][s\$]? 3 | b[a@][s\$][t\+][a@]rd 4 | b[e3][a@][s\$][t\+][i1][a@]?[l1]([i1][t\+]y)? 5 | b[e3][a@][s\$][t\+][i1][l1][i1][t\+]y 6 | b[e3][s\$][t\+][i1][a@][l1]([i1][t\+]y)? 7 | b[i1][t\+]ch[s\$]? 8 | b[i1][t\+]ch[e3]r[s\$]? 9 | b[i1][t\+]ch[e3][s\$] 10 | b[i1][t\+]ch[i1]ng? 11 | b[l1][o0]wj[o0]b[s\$]? 12 | c[l1][i1][t\+] 13 | ^(c|k|ck|q)[o0](c|k|ck|q)[s\$]?$ 14 | (c|k|ck|q)[o0](c|k|ck|q)[s\$]u 15 | (c|k|ck|q)[o0](c|k|ck|q)[s\$]u(c|k|ck|q)[e3]d 16 | (c|k|ck|q)[o0](c|k|ck|q)[s\$]u(c|k|ck|q)[e3]r 17 | (c|k|ck|q)[o0](c|k|ck|q)[s\$]u(c|k|ck|q)[i1]ng 18 | (c|k|ck|q)[o0](c|k|ck|q)[s\$]u(c|k|ck|q)[s\$] 19 | ^cum[s\$]?$ 20 | cumm??[e3]r 21 | cumm?[i1]ngcock 22 | (c|k|ck|q)um[s\$]h[o0][t\+] 23 | (c|k|ck|q)un[i1][l1][i1]ngu[s\$] 24 | (c|k|ck|q)un[i1][l1][l1][i1]ngu[s\$] 25 | (c|k|ck|q)unn[i1][l1][i1]ngu[s\$] 26 | (c|k|ck|q)un[t\+][s\$]? 27 | (c|k|ck|q)un[t\+][l1][i1](c|k|ck|q) 28 | (c|k|ck|q)un[t\+][l1][i1](c|k|ck|q)[e3]r 29 | (c|k|ck|q)un[t\+][l1][i1](c|k|ck|q)[i1]ng 30 | cyb[e3]r(ph|f)u(c|k|ck|q) 31 | d[a@]mn 32 | d[i1]ck 33 | d[i1][l1]d[o0] 34 | d[i1][l1]d[o0][s\$] 35 | d[i1]n(c|k|ck|q) 36 | d[i1]n(c|k|ck|q)[s\$] 37 | [e3]j[a@]cu[l1] 38 | (ph|f)[a@]g[s\$]? 39 | (ph|f)[a@]gg[i1]ng 40 | (ph|f)[a@]gg?[o0][t\+][s\$]? 41 | (ph|f)[a@]gg[s\$] 42 | (ph|f)[e3][l1][l1]?[a@][t\+][i1][o0] 43 | (ph|f)u(c|k|ck|q) 44 | (ph|f)u(c|k|ck|q)[s\$]? 45 | g[a@]ngb[a@]ng[s\$]? 46 | g[a@]ngb[a@]ng[e3]d 47 | g[a@]y 48 | h[o0]m?m[o0] 49 | h[o0]rny 50 | j[a@](c|k|ck|q)\-?[o0](ph|f)(ph|f)? 51 | j[e3]rk\-?[o0](ph|f)(ph|f)? 52 | j[i1][s\$z][s\$z]?m? 53 | [ck][o0]ndum[s\$]? 54 | mast(e|ur)b(8|ait|ate) 55 | n+[i1]+[gq]+[e3]*r+[s\$]* 56 | [o0]rg[a@][s\$][i1]m[s\$]? 57 | [o0]rg[a@][s\$]m[s\$]? 58 | p[e3]nn?[i1][s\$] 59 | p[i1][s\$][s\$] 60 | p[i1][s\$][s\$][o0](ph|f)(ph|f) 61 | p[o0]rn 62 | p[o0]rn[o0][s\$]? 63 | p[o0]rn[o0]gr[a@]phy 64 | pr[i1]ck[s\$]? 65 | pu[s\$][s\$][i1][e3][s\$] 66 | pu[s\$][s\$]y[s\$]? 67 | [s\$][e3]x 68 | [s\$]h[i1][t\+][s\$]? 69 | [s\$][l1]u[t\+][s\$]? 70 | [s\$]mu[t\+][s\$]? 71 | [s\$]punk[s\$]? 72 | [t\+]w[a@][t\+][s\$]? 73 | --------------------------------------------------------------------------------