php - Regex check for words and words with spaces separating letters -


so have array of profanities checking in string.

e.g.

$string = 'naughty string'; $words = [     'naughty',     'example',     'words' ]; $pattern = '/('.join($words, '|').')/i'; preg_match_all($pattern, $string, $matches); $matched = implode(', ', $matches[0]); 

but want check profanities split spaces:

e.g.

n u g h t y

yes can adding array:

$words = [     'naughty',     'n u g h t y',     'example',     'e x m p l e',     'words',     'w o r d s' ]; 

but have huge array of "bad" words , wondering if there easy way of doing this?

------ edit ------

so isn't meant super accurate. application every space new line.. string this: n u g h t y string result in this:

n

a

u

g

h

t

y

string

to answer question asked, create pattern b\s*a\s*d instead of bad:

$string = 'some bad , b d , more ugly , u g l y words';  $words = [     'bad',     'ugly' ];  $pattern = '/\b(' . join(     array_map(function($w) {         return join(str_split($w), '\s*');     }, $words), '|') .'\b)/i';  print preg_replace($pattern, '***', $string);  // *** , *** , more *** , *** words 

on more general note, can't reliably remove profanities, in unicode world. there's no way can filter out ƒⓤçκ.


Comments

Popular posts from this blog

android - Gradle sync Error:Configuration with name 'default' not found -

java - Andrioid studio start fail: Fatal error initializing 'null' -

html - jQuery UI Sortable - Remove placeholder after item is dropped -