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

Categories

0 votes
327 views
in Technique[技术] by (71.8m points)

php - How can I remove leading and trailing non-alphanumeric characters

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

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

1 Answer

0 votes
by (71.8m points)

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); 

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome to OStack Knowledge Sharing Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

2.1m questions

2.1m answers

60 comments

56.9k users

...