Skip to content

Instantly share code, notes, and snippets.

@MeinLiX
Created October 24, 2021 22:05
Show Gist options
  • Save MeinLiX/b39134b78a778875c7511d996dee1c0a to your computer and use it in GitHub Desktop.
Save MeinLiX/b39134b78a778875c7511d996dee1c0a to your computer and use it in GitHub Desktop.
mat
import java7.util.regex.Pattern;
public class MatMatcher {
private String[] words = new String[]{
//ass(es)?
"a[\\W_]*s[\\W_]*s(?:[\\W_]*e[\\W_]*s)?",
//fuck(ing)?
"f[\\W_]*u[\\W_]*c[\\W_]*k(?:[\\W_]*i[\\W_]*n[\\W_]*g)?",
//ж(ыд(у|ов)?|оп(а(х)?|у|ой))
"ж[\\W_]*(?:[ыиiu][\\W_]*[дd](?:[\\W_]*[уыаyiau]|[\\W_]*[оo0][\\W_]*[вbv])?|[оo0][\\W_]*[пnp][\\W_]*(?:[аa](?:[\\W_]*[хxh])?|[уеыeyiu]|[оo0][\\W_]*[йj]))",
//дер(ь)?мо(м)?
"[дd][\\W_]*[еe][\\W_]*[рpr][\\W_]*(?:[ьb][\\W_]*)?[мm][\\W_]*[оуеаeoya0u](?:[\\W_]*[мm])?",
//чм(о|ыре)
"[чc][\\W_]*[мm][\\W_]*(?:[оo0]|[ыi][\\W_]*[рpr][\\W_]*[еиьяeibu])",
//су((ч)?ка(н(ой|у)?)?|ч((ь)?(е|ей)|ары))
"[сsc][\\W_]*[уuy][\\W_]*(?:(?:[чc][\\W_]*)?[кk][\\W_]*[ауиiyau](?:[\\W_]*[нhn](?:[\\W_]*[оo0][\\W_]*[йj]|[\\W_]*[уаыyiau])?)?|[чc][\\W_]*(?:(?:[ьb][\\W_]*)?(?:[еёяиeiu]|[еиeiu][\\W_]*[йj])|[аa][\\W_]*[рpr][\\W_]*[ыауеeyiau]))",
//г(а(ндан(ы)?|вно((м|ед(ы|ом(и)?)?))?)|н(ид(ы|ой)|ус(а|ом(и)?)?))
"[гrg][\\W_]*(?:[аоoa0][\\W_]*(?:[нhn][\\W_]*[дd][\\W_]*[аоoa0][\\W_]*[нhn](?:[\\W_]*[ыуyiu])?|[вbv][\\W_]*[нhn][\\W_]*[оаoa0](?:[\\W_]*(?:[мm]|[еe][\\W_]*[дd](?:[\\W_]*[ыуаеeyiau]|[\\W_]*[оаoa0][\\W_]*[мm](?:[\\W_]*[иiu])?)?))?)|[нhn][\\W_]*(?:[иiu][\\W_]*[дd][\\W_]*(?:[ыуеаeyiau]|[оo0][\\W_]*[йj])|[уyu][сsc](?:[\\W_]*[аыуyiau]|[\\W_]*[оаoa0][\\W_]*[мm](?:[\\W_]*[иiu])?)?))",
//(не)?((за|от|по|п(ере|ро|издо)|на|из|до|вы|у|раз|зло|тро|у))?(вы)?(ъ)?(еб((о)?(н(н)?я?)?(ва)?(((ишься|т((ь)?ся|ь|есь|е|о|ину)|(щ(ий|ая|ие|его)|ют)(ся)?|ем|к(и)?|ал(ся)?|л(ан|о(м)?|(и)?сь|и|ась)|рь|ся|но|ч(их|есть(ю)?)|(тельск|ст|лив|ч)?(ая|ой|ых|ым(и)?|ую|ие|ому|ий|ев|им(и)?)|ч))?)|ы((ва|н(н)?)(((ишься|т(ься|ь|есь|е|ину)|(щ(ий|ая|ие|его)|ют)(ся)?|ем|л((и)?сь|и|ась)|(ст|лив|ч)?(ая|ой|ых|ым(и)?|ую|ие|ому|ий|ев|им(и)?))))|рь))|яб(о)?((н(н)?я?)?(((ишься|т(ься|ь|есь|е|ину)|(щ(ий|ая|ие|его)|ют)(ся)?|ем|к(и)?|ал(ся)?|л(ан|о(м)?|(и)?сь|и)|рь|ся|но|ч(их|есть(ю)?)|(тельск|ст|лив|ч)?(ая|ой|ых|ым(и)?|ую|ие|ому|ий|ев|им(и)?)|ч))|(н(н)?я?)))|яб(е)?(н(н)?(я)?)?т)
"(?:[нhn][\\W_]*[еe][\\W_]*)?(?:(?:[з3z][\\W_]*[аa]|[оo0][тt]|[пnp][\\W_]*[оo0]|[пnp][\\W_]*(?:[еe][\\W_]*[рpr][\\W_]*[еe]|[рpr][\\W_]*[оеиeiou0]|[иiu][\\W_]*[з3z][\\W_]*[дd][\\W_]*[оo0])|[нhn][\\W_]*[аa]|[иiu][\\W_]*[з3z]|[дd][\\W_]*[оo0]|[вbv][\\W_]*[ыi]|[уyu]|[рpr][\\W_]*[аa][\\W_]*[з3z]|[з3z][\\W_]*[лl][\\W_]*[оo0]|[тt][\\W_]*[рpr][\\W_]*[оo0]|[уyu])[\\W_]*)?(?:[вbv][\\W_]*[ыi][\\W_]*)?(?:[ъьb][\\W_]*)?(?:[еёe][\\W_]*[бb6](?:(?:[\\W_]*[оеёаиуeioyau0])?(?:[\\W_]*[нhn](?:[\\W_]*[нhn])?[\\W_]*[яуаиьiybau]?)?(?:[\\W_]*[вbv][\\W_]*[аa])?(?:(?:[\\W_]*(?:[иеeiu]ш[\\W_]*[ьb][\\W_]*[сsc][\\W_]*я|[тt][\\W_]*(?:(?:[ьb][\\W_]*)?[сsc][\\W_]*я|[ьb]|[еe][\\W_]*[сsc][\\W_]*[ьb]|[еe]|[оo0]|[иiu][\\W_]*[нhn][\\W_]*[уыеаeyiau])|(?:щ[\\W_]*(?:[иiu][\\W_]*[йj]|[аa][\\W_]*я|[иеeiu][\\W_]*[еe]|[еe][\\W_]*[гrg][\\W_]*[оo0])|ю[\\W_]*[тt])(?:[\\W_]*[сsc][\\W_]*я)?|[еe][\\W_]*[мтmt]|[кk](?:[\\W_]*[иаiau])?|[аa][\\W_]*[лl](?:[\\W_]*[сsc][\\W_]*я)?|[лl][\\W_]*(?:[аa][\\W_]*[нhn]|[оаoa0](?:[\\W_]*[мm])?|(?:[иiu][\\W_]*)?[сsc][\\W_]*[ьяb]|[иiu]|[аa][\\W_]*[сsc][\\W_]*[ьb])|[рpr][\\W_]*[ьb]|[сsc][\\W_]*[яьb]|[нhn][\\W_]*[оo0]|[чc][\\W_]*(?:[иiu][\\W_]*[хxh]|[еe][\\W_]*[сsc][\\W_]*[тt][\\W_]*[ьиibu](?:[\\W_]*ю)?)|(?:[тt][\\W_]*[еe][\\W_]*[лl][\\W_]*[ьb][\\W_]*[сsc][\\W_]*[кk][\\W_]*|[сsc][\\W_]*[тt][\\W_]*|[лl][\\W_]*[иiu][\\W_]*[вbv][\\W_]*|[чтtc][\\W_]*)?(?:[аa][\\W_]*я|[оo0][\\W_]*[йемejm]|[ыi][\\W_]*[хйеejxh]|[ыi][\\W_]*[мm](?:[\\W_]*[иiu])?|[уyu][\\W_]*ю|[иiu][\\W_]*[еe]|[оo0][\\W_]*[мm][\\W_]*[уyu]|[иiu][\\W_]*[йj]|[еe][\\W_]*[вbv]|[иiu][\\W_]*[мm](?:[\\W_]*[иiu])?)|[чтыйилijltcu]))?)|[\\W_]*[ыi](?:(?:[\\W_]*[вbv][\\W_]*[аa]|[\\W_]*[нhn](?:[\\W_]*[нhn])?)(?:(?:[\\W_]*(?:[иеeiu]ш[\\W_]*[ьb][\\W_]*[сsc][\\W_]*я|[тt][\\W_]*(?:[ьb][\\W_]*[сsc][\\W_]*я|[ьb]|[еe][\\W_]*[сsc][\\W_]*[ьb]|[еe]|[иiu][\\W_]*[нhn][\\W_]*[уыеаeyiau])|(?:щ[\\W_]*(?:[иiu][\\W_]*[йj]|[аa][\\W_]*я|[иеeiu][\\W_]*[еe]|[еe][\\W_]*[гrg][\\W_]*[оo0])|ю[\\W_]*[тt])(?:[\\W_]*[сsc][\\W_]*я)?|[еe][\\W_]*[мтmt]|[лl][\\W_]*(?:(?:[иiu][\\W_]*)?[сsc][\\W_]*[ьяb]|[иiu]|[аa][\\W_]*[сsc][\\W_]*[ьb])|(?:[сsc][\\W_]*[тt][\\W_]*|[лl][\\W_]*[иiu][\\W_]*[вbv][\\W_]*|[чтtc][\\W_]*)?(?:[аa][\\W_]*я|[оo0][\\W_]*[йемejm]|[ыi][\\W_]*[хйеejxh]|[ыi][\\W_]*[мm](?:[\\W_]*[иiu])?|[уyu][\\W_]*ю|[иiu][\\W_]*[еe]|[оo0][\\W_]*[мm][\\W_]*[уyu]|[иiu][\\W_]*[йj]|[еe][\\W_]*[вbv]|[иiu][\\W_]*[мm](?:[\\W_]*[иiu])?))))|[рpr][\\W_]*[ьb]))|я[\\W_]*[бb6](?:[\\W_]*[оеёаиуeioyau0])?(?:(?:[\\W_]*[нhn](?:[\\W_]*[нhn])?[\\W_]*[яуаиьiybau]?)?(?:(?:[\\W_]*(?:[иеeiu]ш[\\W_]*[ьb][\\W_]*[сsc][\\W_]*я|[тt][\\W_]*(?:[ьb][\\W_]*[сsc][\\W_]*я|[ьb]|[еe][\\W_]*[сsc][\\W_]*[ьb]|[еe]|[иiu][\\W_]*[нhn][\\W_]*[уыеаeyiau])|(?:щ[\\W_]*(?:[иiu][\\W_]*[йj]|[аa][\\W_]*я|[иеeiu][\\W_]*[еe]|[еe][\\W_]*[гrg][\\W_]*[оo0])|ю[\\W_]*[тt])(?:[\\W_]*[сsc][\\W_]*я)?|[еe][\\W_]*[мтmt]|[кk](?:[\\W_]*[иаiau])?|[аa][\\W_]*[лl](?:[\\W_]*[сsc][\\W_]*я)?|[лl][\\W_]*(?:[аa][\\W_]*[нhn]|[оаoa0](?:[\\W_]*[мm])?|(?:[иiu][\\W_]*)?[сsc][\\W_]*[ьяb]|[иiu])|[рpr][\\W_]*[ьb]|[сsc][\\W_]*[яьb]|[нhn][\\W_]*[оo0]|[чc][\\W_]*(?:[иiu][\\W_]*[хxh]|[еe][\\W_]*[сsc][\\W_]*[тt][\\W_]*[ьиibu](?:[\\W_]*ю)?)|(?:[тt][\\W_]*[еe][\\W_]*[лl][\\W_]*[ьb][\\W_]*[сsc][\\W_]*[кk][\\W_]*|[сsc][\\W_]*[тt][\\W_]*|[лl][\\W_]*[иiu][\\W_]*[вbv][\\W_]*|[чтtc][\\W_]*)?(?:[аa][\\W_]*я|[оo0][\\W_]*[йемejm]|[ыi][\\W_]*[хйеejxh]|[ыi][\\W_]*[мm](?:[\\W_]*[иiu])?|[уyu][\\W_]*ю|[иiu][\\W_]*[еe]|[оo0][\\W_]*[мm][\\W_]*[уyu]|[иiu][\\W_]*[йj]|[еe][\\W_]*[вbv]|[иiu][\\W_]*[мm](?:[\\W_]*[иiu])?)|[чмйилijlmcu]))|(?:[\\W_]*[нhn](?:[\\W_]*[нhn])?[\\W_]*[яуаиьiybau]?)))|я[\\W_]*[бb6][\\W_]*(?:[еёаиуeiyau][\\W_]*)?(?:[нhn][\\W_]*(?:[нhn][\\W_]*)?(?:[яуаиьiybau][\\W_]*)?)?[тt])",
//сьеб(у|(е(л(и)?|шь|те)?(сь)?))
"[сsc][\\W_]*[ьъb][\\W_]*[еяёe][\\W_]*[бb6][\\W_]*(?:[уyu]|(?:[еиёауeiyau](?:[\\W_]*[лl](?:[\\W_]*[иоаioau0])?|[\\W_]*ш[\\W_]*[ьb]|[\\W_]*[тt][\\W_]*[еe])?(?:[\\W_]*[сsc][\\W_]*[ьяb])?))",
//е(б(укентий|ен(ь|я(м)?)|и(цкая|ческая)|лище|а(льник(и)?|торий|н(троп|ати(к|ческий))))|дрит)
"[еe][\\W_]*(?:[бb6][\\W_]*(?:[уyu][\\W_]*[кk][\\W_]*[еe][\\W_]*[нhn][\\W_]*[тt][\\W_]*[иiu][\\W_]*[йj]|[еe][\\W_]*[нhn][\\W_]*(?:[ьb]|я(?:[\\W_]*[мm])?)|[иiu][\\W_]*(?:[цc][\\W_]*[кk][\\W_]*[аa][\\W_]*я|[чc][\\W_]*[еe][\\W_]*[сsc][\\W_]*[кk][\\W_]*[аa][\\W_]*я)|[лl][\\W_]*[иiu][\\W_]*щ[\\W_]*[еe]|[аa][\\W_]*(?:[лl][\\W_]*[ьb][\\W_]*[нhn][\\W_]*[иiu][\\W_]*[кk](?:[\\W_]*[иаiau])?|[тt][\\W_]*[оo0][\\W_]*[рpr][\\W_]*[иiu][\\W_]*[йj]|[нhn][\\W_]*(?:[тt][\\W_]*[рpr][\\W_]*[оo0][\\W_]*[пnp]|[аa][\\W_]*[тt][\\W_]*[иiu][\\W_]*(?:[кk]|[чc][\\W_]*[еe][\\W_]*[сsc][\\W_]*[кk][\\W_]*[иiu][\\W_]*[йj]))))|[дd][\\W_]*[рpr][\\W_]*[иiu][\\W_]*[тt])",
//невротъебательски(ый|ая|ое|ых|ые|ым(и)?|ую|ому)
"[нhn][\\W_]*[еe][\\W_]*[вbv][\\W_]*[рpr][\\W_]*[оo0][\\W_]*[тt][\\W_]*ъ[\\W_]*[еe][\\W_]*[бb6][\\W_]*[аa][\\W_]*[тt][\\W_]*[еe][\\W_]*[лl][\\W_]*[ьb][\\W_]*[сsc][\\W_]*[кk][\\W_]*[иiu][\\W_]*(?:[ыиiu][\\W_]*[йj]|[аa][\\W_]*я|[оo0][\\W_]*[ейej]|[ыi][\\W_]*[хxh]|[ыi][\\W_]*[еe]|[ыi][\\W_]*[мm](?:[\\W_]*[иiu])?|[уyu][\\W_]*ю|[оo0][\\W_]*[мm][\\W_]*[уyu])",
//у(ёб(ище|ан(тус)?(ав|ы)?)|род(ав|ы)?|блюд(ок|к(ав(и)?|и)?))
"[уyu][\\W_]*(?:[ёеe][\\W_]*[бb6][\\W_]*(?:[иiu][\\W_]*щ[\\W_]*[еаea]|[аa][\\W_]*[нhn](?:[\\W_]*[тt][\\W_]*[уyu][\\W_]*[сsc])?(?:[\\W_]*[аоoa0][\\W_]*[вмbmv]|[\\W_]*[ыуеаeyiau])?)|[рpr][\\W_]*[оo0][\\W_]*[дd](?:[\\W_]*[аоoa0][\\W_]*[вмbmv]|[\\W_]*[ыуеаeyiau])?|[бb6][\\W_]*[лl][\\W_]*ю[\\W_]*[дd][\\W_]*(?:[оo0][\\W_]*[кk]|[кk][\\W_]*(?:[аоoa0][\\W_]*[вмbmv](?:[\\W_]*[иiu])?|[иуеаeiyau])?))",
//м(уд(оха(ться|юсь|ешься)|а(к(и|ом)?|ч(ье|ину|к(а|ой)))|ень|ил(а?))|анду|л(ин|я))
"[мm][\\W_]*(?:[уyu][\\W_]*[дd][\\W_]*(?:[оo0][\\W_]*[хxh][\\W_]*[аa][\\W_]*(?:[тt][\\W_]*[ьb][\\W_]*[сsc][\\W_]*я|ю[\\W_]*[сsc][\\W_]*[ьb]|[еe][\\W_]*ш[\\W_]*[ьb][\\W_]*[сsc][\\W_]*я)|[аa][\\W_]*(?:[кk](?:[\\W_]*[иаiau]|[оo0][мвbmv])?|[чc][\\W_]*(?:[ьb][\\W_]*[еёe]|[иiu][\\W_]*[нhn][\\W_]*[уыаyiau]|[кk][\\W_]*(?:[аиеуeiyau]|[оo0][\\W_]*[йj])))|[еe][\\W_]*[нhn][\\W_]*[ьb]|[иiu][\\W_]*[лl](?:[\\W_]*[аеоыeoia0]?))|[аa][\\W_]*[нhn][\\W_]*[дd][\\W_]*[уаyau]|[лl][\\W_]*(?:[иiu][\\W_]*[нhn]|я))",
//(м(озг|уд)|д(олб|ур)|скот|жид)а(хуи|ёб(ев|ы|ство(м)?|изм)?)
"(?:[мm][\\W_]*(?:[оo0][\\W_]*[з3z][\\W_]*[гrg]|[уyu][\\W_]*[дd])|[дd][\\W_]*(?:[оo0][\\W_]*[лl][\\W_]*[бb6]|[уyu][\\W_]*[рpr])|[сsc][\\W_]*[кk][\\W_]*[оo0][\\W_]*[тt]|ж[\\W_]*[иiu][\\W_]*[дd])[\\W_]*[аоoa0][\\W_]*(?:[хxh][\\W_]*[уyu][\\W_]*[ийяiju]|[ёеe][\\W_]*[бb6](?:[\\W_]*[еоeo0][\\W_]*[вbv]|[\\W_]*[ыаia]|[\\W_]*[сsc][\\W_]*[тt][\\W_]*[вbv][\\W_]*[оуoy0u](?:[\\W_]*[мm])?|[иiu][\\W_]*[з3z][\\W_]*[мm])?)",
//(не|за|от|по|на|рас)?(пизди|(ъ)?еба)((ться|ть|ли|ал|л|cь|ит|и|те|чу|шь)|(й|им(и)?|йс(к(ый|ая|ое|ых|ым(и)?|ую|ому)|тво(м)?)))
"(?:[нhn][\\W_]*[еe][\\W_]*|[з3z][\\W_]*[аa][\\W_]*|[оo0][\\W_]*[тt][\\W_]*|[пnp][\\W_]*[оo0][\\W_]*|[нhn][\\W_]*[аa][\\W_]*|[рpr][\\W_]*[аa][\\W_]*[сз3szc][\\W_]*)?(?:[пnp][\\W_]*[иiu][\\W_]*[з3z][\\W_]*[дd][\\W_]*[ияеeiu]|(?:ъ)?[еёe][\\W_]*[бb6][\\W_]*[аa])[\\W_]*(?:(?:[тt][\\W_]*[ьb][\\W_]*[сsc][\\W_]*я|[тt][\\W_]*[ьb]|[лl][\\W_]*[иiu]|[аa][\\W_]*[лl]|[лl]|c[\\W_]*[ьb]|[иiu][\\W_]*[тt]|[иiu]|[тt][\\W_]*[еe]|[чc][\\W_]*[уyu]|ш[\\W_]*[ьb])|(?:[йяиiju]|[иеeiu][\\W_]*[мm](?:[\\W_]*[иiu])?|[йj][\\W_]*[сsc][\\W_]*(?:[кk][\\W_]*(?:[ыиiu][\\W_]*[йеej]|[аa][\\W_]*я|[оo0][\\W_]*[еe]|[ыi][\\W_]*[хxh]|[ыi][\\W_]*[мm](?:[\\W_]*[иiu])?|[уyu][\\W_]*ю|[оo0][\\W_]*[мm][\\W_]*[уyu])|[тt][\\W_]*[вbv][\\W_]*[оуаoya0u](?:[\\W_]*[мm])?)))",
//педар((ас((т)?(ы|ом(и)?|ка)?|(ы|ом(и)?|ов)))|(ы|ом(и)?|ов|ня))?
"[пnp][\\W_]*[еиыeiu][\\W_]*[дd][\\W_]*[аеэоeoa0][\\W_]*[рpr](?:(?:[\\W_]*[аa][\\W_]*[сз3szc](?:(?:[\\W_]*[тt])?(?:[\\W_]*[ыi]|[\\W_]*[оаoa0][\\W_]*[мm](?:[\\W_]*[иiu])?|[\\W_]*[кk][\\W_]*[аиiau])?|(?:[\\W_]*[ыуаеeyiau]|[\\W_]*[оаoa0][\\W_]*[мm](?:[\\W_]*[иiu])?|[\\W_]*[оo0][\\W_]*[вbv])))|[\\W_]*(?:[ыуаеeyiau]|[оаoa0][\\W_]*[мm](?:[\\W_]*[иiu])?|[оo0][\\W_]*[вbv]|[нhn][\\W_]*я))?",
//пиз(ь)?д(ё(ныш(ь)?|ш(ь)?)|у(й(те)?|н(ы)?)|ю(к((а|ов|ам(и)?))?|л(ь|ей|ях))|ец|а(ну)?т(ий|ая|о(е)?|ые|ым(и)?|ую|ому|ее|а)|анул(а)?|ы|о(й|хуй|еб|(рот|голов)(ый|ая|ое|ых|ые|ым(и)?|ую|ому)|б(ратия|ол(а)?)))
"[пnp][\\W_]*[иiu][\\W_]*[з3z][\\W_]*(?:[ьb][\\W_]*)?[дd][\\W_]*(?:[ёеe][\\W_]*(?:[нhn][\\W_]*[ыi][\\W_]*ш(?:[\\W_]*[ьb])?|[шнжhn](?:[\\W_]*[ьb])?)|[уyu][\\W_]*(?:[йj](?:[\\W_]*[тt][\\W_]*[еe])?|[нhn](?:[\\W_]*[ыi])?)|ю[\\W_]*(?:[кk](?:[\\W_]*(?:[аеуиeiyau]|[оo0][\\W_]*[вbv]|[аa][\\W_]*[мm](?:[\\W_]*[иiu])?))?|[лl](?:[ьиibu]|[еe][\\W_]*[йj]|я[\\W_]*[хмmxh]))|[еe][\\W_]*[цc]|[аоoa0][\\W_]*(?:[нhn][\\W_]*[уyu][\\W_]*)?[тt][\\W_]*(?:[иiu][\\W_]*[йj]|[аa][\\W_]*я|[оo0](?:[\\W_]*[ейej])?|[ыi][\\W_]*[ейхejxh]|[ыi][\\W_]*[мm](?:[\\W_]*[иiu])?|[уyu][\\W_]*ю|[оo0][\\W_]*[мm][\\W_]*[уyu]|[еe][\\W_]*[еe]|[ауьеыeyibau])|[аa][\\W_]*[нhn][\\W_]*[уyu][\\W_]*[лl](?:[\\W_]*[аиiau])?|[ыеуиаeiyau]|[оаoa0][\\W_]*(?:[йj]|[хxh][\\W_]*[уyu][\\W_]*[йj]|[еёe][\\W_]*[бb6]|(?:[рpr][\\W_]*[оo0][\\W_]*[тt]|[гrg][\\W_]*[оo0][\\W_]*[лl][\\W_]*[оo0][\\W_]*[вbv])[\\W_]*(?:[ыиiu][\\W_]*[йj]|[аa][\\W_]*я|[оo0][\\W_]*[ейej]|[ыi][\\W_]*[хxh]|[ыi][\\W_]*[еe]|[ыi][\\W_]*[мm](?:[\\W_]*[иiu])?|[уyu][\\W_]*ю|[оo0][\\W_]*[мm][\\W_]*[уyu])|[бb6][\\W_]*(?:[рpr][\\W_]*[аa][\\W_]*[тt][\\W_]*[иiu][\\W_]*я|[оo0][\\W_]*[лl](?:[\\W_]*[аыуyiau])?)))",
//п(адла|оскуд(ы|ом(и)?)|ид(ик|рил(л)?)(ом|и)?|роблядом)
"[пnp][\\W_]*(?:[аa][\\W_]*[дd][\\W_]*[лl][\\W_]*[аоыoia0]|[оаoa0][\\W_]*[сsc][\\W_]*[кk][\\W_]*[уyu][\\W_]*[дd][\\W_]*(?:[ыуаеeyiau]|[оаoa0][\\W_]*[мm](?:[\\W_]*[иiu])?)|[иеeiu][\\W_]*[дd][\\W_]*(?:[иiu][\\W_]*[кk]|[рpr][\\W_]*[иiu][\\W_]*[лl](?:[\\W_]*[лl])?)(?:[\\W_]*[оаoa0][\\W_]*[мвbmv]|[\\W_]*[иуеоыаeioyau0])?|[рpr][\\W_]*[оo0][\\W_]*[бb6][\\W_]*[лl][\\W_]*я[\\W_]*[дd][\\W_]*[оo0][\\W_]*[мm])",
//(за|от|на)?ср(ать|ал(и)?|e)
"(?:[з3z][\\W_]*[аa][\\W_]*|[оo0][\\W_]*[тt][\\W_]*|[нhn][\\W_]*[аa][\\W_]*)?[сsc][\\W_]*[рpr][\\W_]*(?:[аa][\\W_]*[тt][\\W_]*[ьb]|[аa][\\W_]*[лl](?:[\\W_]*[иiu])?|[eуиiyu])",
//сра(к(а|ой)|н(н)?(ь|(ый|ая|ое))|льник(и|ом)?)
"[сsc][\\W_]*[рpr][\\W_]*[аa][\\W_]*(?:[кk][\\W_]*(?:[аеиуeiyau]|[оo0][\\W_]*[йj])|[нhn](?:[\\W_]*[нhn])?(?:[ьb]|(?:[\\W_]*[ыi][\\W_]*[йеej]|[\\W_]*[аa][\\W_]*я|[\\W_]*[оo0][\\W_]*[еe]))|[лl][\\W_]*[ьb][\\W_]*[нhn][\\W_]*[иiu][\\W_]*[кk](?:[\\W_]*[иiu]|[\\W_]*[оаoa0][\\W_]*[мm])?)",
//(за)?трах(н(у(ть(ся)?|сь|л(а)?)?|ешься)|а(л(а)?|ть(ся)?|н(н)?(ый|ая|ой|ых|ые|ым(и)?|ую|ому)))
"(?:[з3z][\\W_]*[аa][\\W_]*)?[тt][\\W_]*[рpr][\\W_]*[аa][\\W_]*[хxh][\\W_]*(?:[нhn][\\W_]*(?:[уyu](?:[\\W_]*[тt][\\W_]*[ьb](?:[\\W_]*[сsc][\\W_]*я)?|[\\W_]*[сsc][\\W_]*[ьb]|[\\W_]*[лl](?:[\\W_]*[аиiau])?)?|[еиeiu][\\W_]*ш[\\W_]*[ьb][\\W_]*[сsc][\\W_]*я)|[аa][\\W_]*(?:[лl](?:[\\W_]*[аоиioau0])?|[тt][\\W_]*[ьb](?:[\\W_]*[сsc][\\W_]*я)?|[нhn][\\W_]*(?:[нhn][\\W_]*)?(?:[ыиiu][\\W_]*[йj]|[аa][\\W_]*я|[оo0][\\W_]*[йеej]|[ыi][\\W_]*[хxh]|[ыi][\\W_]*[еe]|[ыi][\\W_]*[мm](?:[\\W_]*[иiu])?|[уyu][\\W_]*ю|[оo0][\\W_]*[мm][\\W_]*[уyu])))",
//(ни|по|на|о(т)?|да|за)?((фиг|х(е(й)?р|рен|у(й)?))(ев(ающ|ш)?)?(ал)?(н)?((ию|я(м(и)?|р(ю|и(т(ься)?|л(и)?))|ч(ат(ся)|ил(и)?)|ч(ь)?)|е(т(ой|а)|е(те|шь))|а|ли|чу)))
"(?:[нhn][\\W_]*[иеeiu][\\W_]*|[пnp][\\W_]*[оo0][\\W_]*|[нhn][\\W_]*[аa][\\W_]*|[оаoa0][\\W_]*(?:[тt][\\W_]*)?|[дd][\\W_]*[аоoa0][\\W_]*|[з3z][\\W_]*[аa][\\W_]*)?(?:(?:[фf][\\W_]*[иiu][\\W_]*[гrg]|[хxh][\\W_]*(?:[еиeiu][\\W_]*(?:[йj][\\W_]*)?[рpr]|[рpr][\\W_]*[еe][\\W_]*[нhn]|[уyu](?:[\\W_]*[йj])?))(?:[\\W_]*[еоёeo0][\\W_]*[вbv](?:[\\W_]*[аa][\\W_]*ю[\\W_]*щ|[\\W_]*ш)?)?(?:[\\W_]*[аиеeiau][\\W_]*[лнlhn])?(?:[нhn])?(?:[\\W_]*(?:[иаоёяыеeioau0][юяиевмйbeijmvu]|я[\\W_]*(?:[мm](?:[\\W_]*[иiu])?|[рpr][\\W_]*(?:ю|[иiu][\\W_]*(?:[тt](?:[\\W_]*[ьеeb][\\W_]*[сsc][\\W_]*[яьb])?|[лl](?:[\\W_]*[иоаioau0])?))|[чc][\\W_]*(?:[аиiau][\\W_]*[тt](?:[\\W_]*[сsc][\\W_]*я)|[иiu][\\W_]*[лl](?:[\\W_]*[иоаioau0])?)|[чc](?:[\\W_]*[ьb])?)|[еe][\\W_]*(?:[тt][\\W_]*(?:[оo0][\\W_]*[йj]|[аьуybau])|[еe][\\W_]*(?:[тt][\\W_]*[еe]|ш[\\W_]*[ьb]))|[аыоуяюйиijoyau0]|[лl][\\W_]*[иоiou0]|[чc][\\W_]*[уyu])))",
//(фиг|х(е(й)?р|рен|уй))
"(?:[фf][\\W_]*[иiu][\\W_]*[гrg]|[хxh][\\W_]*(?:[еиeiu][\\W_]*(?:[йj][\\W_]*)?[рpr]|[рpr][\\W_]*[еe][\\W_]*[нhn]|[уyu][\\W_]*[йj]))",
//ху(е(сос|плет|ныш)(а|ом(и)?|н(ый|ая|ой|ых|ые|ым(и)?|ую|ому))?|доёбин(ой|а))
"[хxh][\\W_]*[уyu][\\W_]*(?:[еёиeiu][\\W_]*(?:[сsc][\\W_]*[оo0][\\W_]*[сsc]|[пnp][\\W_]*[лl][\\W_]*[еe][\\W_]*[тt]|[нhn][\\W_]*[ыi][\\W_]*ш)(?:[\\W_]*[аыуyiau]|[\\W_]*[оаoa0][\\W_]*[мm](?:[\\W_]*[иiu])?|[нhn][\\W_]*(?:[ыиiu][\\W_]*[йj]|[аa][\\W_]*я|[оo0][\\W_]*[йеej]|[ыi][\\W_]*[хxh]|[ыi][\\W_]*[еe]|[ыi][\\W_]*[мm](?:[\\W_]*[иiu])?|[уyu][\\W_]*ю|[оo0][\\W_]*[мm][\\W_]*[уyu]))?|[дd][\\W_]*[оo0][\\W_]*ё[\\W_]*[бb6][\\W_]*[иiu][\\W_]*[нhn][\\W_]*(?:[оo0][\\W_]*[йj]|[аеыуeyiau]))",
//бля(д(ь|и|ки|ство|ск(ое|ие|ая|ий|ого)))?
"[бb6][\\W_]*[лl][\\W_]*я(?:[\\W_]*[дтdt][\\W_]*(?:[ьb]|[иiu]|[кk][\\W_]*[иiu]|[сsc][\\W_]*[тt][\\W_]*[вbv][\\W_]*[оo0]|[сsc][\\W_]*[кk][\\W_]*(?:[оo0][\\W_]*[ейej]|[иiu][\\W_]*[еe]|[аa][\\W_]*я|[иiu][\\W_]*[йj]|[оo0][\\W_]*[гrg][\\W_]*[оo0])))?",
//выбляд(ок|к(и|ам(и)?))
"[вbv][\\W_]*[ыi][\\W_]*[бb6][\\W_]*[лl][\\W_]*я[\\W_]*[дd][\\W_]*(?:[оo0][\\W_]*[кk]|[кk][\\W_]*(?:[иуаеeiyau]|[аa][\\W_]*[мm](?:[\\W_]*[иiu])?))",
//(за)(падло|луп(ой|а))
"(?:[з3z][\\W_]*[аоoa0][\\W_]*)(?:[пnp][\\W_]*[аоoa0][\\W_]*[дd][\\W_]*[лl][\\W_]*[оыаoia0]|[лl][\\W_]*[уyu][\\W_]*[пnp][\\W_]*(?:[оo0][\\W_]*[йj]|[аеыуeyiau]))",
//шлюх(а|ой)
"ш[\\W_]*[лl][\\W_]*ю[\\W_]*[хxh][\\W_]*(?:[ауеиeiyau]|[оo0][\\W_]*[йj])",
//анус(е|ом)
"[аa][\\W_]*[нhn][\\W_]*[уyu][\\W_]*[сsc](?:[\\W_]*[еаыуeyiau]|[\\W_]*[оo0][\\W_]*[мm])?",
//(\w*(х(рен|уи)|пе(зд|д(ер|р))|бляд|охуе|муде|дерь|гавн|уеб)|х(рен|уй)|пе(зд|д(ер|р))|бляд|охуе|муде|дерь|гавн|уеб|ёб)\w+
"(?:\\w*(?:[хxh](?:[рpr][еe][нhn]|[уyu][иiu])|[пnp][еиeiu](?:[з3z][дd]|[дd](?:[еаоeoa0][рpr]|[рpr]))|[бb6][лl]я[дd]|[оo0][хxh][уyu][еe]|[мm][уyu][дd][еоиаeioau0]|[дd][еe][рpr][ьb]|[гrg][аоoa0][вbv][нhn]|[уyu][еёe][бb6])|[хxh][\\W_]*(?:[рpr][\\W_]*[еe][\\W_]*[нhn]|[уyu][\\W_]*[йиеяeiju])|[пnp][\\W_]*[еиeiu][\\W_]*(?:[з3z][\\W_]*[дd]|[дd][\\W_]*(?:[еаоeoa0][\\W_]*[рpr]|[рpr]))|[бb6][\\W_]*[лl][\\W_]*я[\\W_]*[дd]|[оo0][\\W_]*[хxh][\\W_]*[уyu][\\W_]*[еe]|[мm][\\W_]*[уyu][\\W_]*[дd][\\W_]*[еоиаeioau0]|[дd][\\W_]*[еe][\\W_]*[рpr][\\W_]*[ьb]|[гrg][\\W_]*[аоoa0][\\W_]*[вbv][\\W_]*[нhn]|[уyu][\\W_]*[еёe][\\W_]*[бb6]|[ёеe][бb6])\\w+"
};
private Pattern pattern;
private static final String pre = "(?:\\b|(?<=_))";
public MatMatcher() {
StringBuilder sb = new StringBuilder();
sb.append(pre).append('(');
for(String word: words)
sb.append(word).append('|');
//remove last |
sb.setLength(sb.length() - 1);
sb.append(')').append(pre);
pattern = Pattern.compile(sb.toString(), Pattern.CASE_INSENSITIVE + Pattern.UNICODE_CHARACTER_CLASS);
}
public boolean detect(String text) {
return pattern.matcher(text).find();
}
public String replace(String text, String bip) {
return pattern.matcher(text).replaceAll(bip);
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment