php - Conditionally Strip Characters From String -


i trying strip characters ['-] string, not when string starts "'t'. code @ present:

$name = "'-'-''t van t der reidjen--'-'-"; $name = preg_replace( '~(^|\s)[-\']+(?!t )(\s|$)~', ' ', $name ); 

desired results:

 "'-'-''t van t der reidjen--'-'-" =>  "'t van t der reidjen"  "van 't der reidjen--'-'-" => "van t der reidjen"  "-van - der -'- reidjen-" => "van der reidjen" 

i.e. leave "'t" @ beginning of string, if prefixed number of [-'] characters, if "'t" found anywhere other beginning of string "'" removed.

how this:

/([-]+)|((?!'t)['])/g 

online demo

the expresion above separated - , ' since tricky 1 ' using ahead excluded 't text.

(?!'t): negative ahead - excludes 't matches.

note: these characters 't being evaluated case sensitive.


Comments

Popular posts from this blog

php - render data via PDO::FETCH_FUNC vs loop -

c++ - OpenCV Error: Assertion failed <scn == 3 ::scn == 4> in unknown function, -

The canvas has been tainted by cross-origin data in chrome only -