Welcome to ShenZhenJia Knowledge Sharing Community for programmer and developer-Open, Learning and Share
menu search
person
Welcome To Ask or Share your Answers For Others

Categories

I'm looking to "trim" non-alphanumerics from a string, similar to how trim() works with whitespace.

Help me convert #str|ng# to str|ng.

I can remove trailing non-alphanumerics with:

$string = preg_replace('/W+$/', '', $string); // converts `#str|ng#` to `#str|ng`

And leading with:

$string = preg_replace('/^W+/', '', $string); // converts `#str|ng#` to `str|ng#`

But how can I accomplish both at the same time?

See Question&Answers more detail:os

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
thumb_up_alt 0 like thumb_down_alt 0 dislike
320 views
Welcome To Ask or Share your Answers For Others

1 Answer

Try using a ^W+|W+$ pattern like this:

$string = preg_replace('/^W+|W+$/', '', $string); 

This will replace any non-word characters (note this doesn't include underscores) which appear either at the beginning or end of the string. The | is an alternation, which will match any string which matches either the pattern on the left or the pattern on the right.

If you also need to remove underscores, use a character class like this:

$string = preg_replace('/^[W_]+|[W_]+$/', '', $string); 

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
thumb_up_alt 0 like thumb_down_alt 0 dislike
Welcome to ShenZhenJia Knowledge Sharing Community for programmer and developer-Open, Learning and Share
...