2011-01-21 7 views
12

私は、あなたが配列でそれらを見ることができるように、すべての句読点、記号などを削除するためにこれらのコード行を使用し句読点記号、記号、発音区別記号、特殊文字を削除する最も良い方法は何ですか?

$pattern_page = array("+",",",".","-","'","\"","&","!","?",":",";","#","~","=","/","$","£","^","(",")","_","<",">"); 

$pg_url = str_replace($pattern_page, ' ', strtolower($pg_url)); 

が、私はそれがすべてのもの、私のリストを表示するために愚かに見えるとして、それをシンプルにしたいです私が削除したいいくつかの他の特殊文字があるかもしれないので、配列で削除したい。

私は

$pg_url = preg_replace("/\W+/", " ", $pg_url); 

、以下の正規表現を使用するのではと思ったが、それはアンダースコアは削除されません - _

これらすべてのものを削除するための最良の方法は何ですか?正規表現でそれを行うことはできますか?これは、文字、数字、スペースではない何かを置き換えます

$pg_url = preg_replace("/[^a-zA-Z 0-9]+/", " ", $pg_url); 

+1

'[A-Za-z0-9]' ;-)以外はすべて削除できます。 – thedom

+0

aw!本当にありがとう! – laukok

答えて

25

あなたがなりたい方法を貪欲に応じて、あなたのような何かを行うことができます。

+1

ありがとうございます。 – laukok

+0

速くて簡単です:)ありがとう – Goaler444

12

使用クラス:

preg_replace('/[^[:alpha:]]/', '', $input); 

は、現在設定されているロケールによって「文字」と考えていないものを削除します。それが句読点であれば、除外しようとしますが、クラスは[:punct:]になります。

\W「は任意の非単語文字」を意味し、下線(_)を含む\wの反対です。

関連する問題