2011-06-28 6 views
1

指定した正規表現と一致しないすべての文字を削除したいと思います。例えば正規表現に含まれていないすべての文字を削除する方法

$a = "hello my name is ,pate !"; 

echo notin_replace("[a-zA-Z]","",$a); 

hello my name is pate 
+0

私はここのコメントのいくつかのトーンに反対しながら、私は感情に同意する - 検索あなたによく役立つだろう。ここでは助けるだろう、正規表現についての質問があります:http://stackoverflow.com/questions/89718/is-there-anything-like-regexbuddy-in-the-open-source-world、ここでは初心者の記事ですPHPでの正規表現の置き換え:http://www.webcheatsheet.com/php/regular_expressions.php –

答えて

1

[^a-zA-Z]

文字クラスの先頭にcarretマインド。それは意味しない。

$a = "hello my name is ,pate !"; 

echo preg_replace("([^a-zA-Z ])", "", $a); 

hello my name is pate 

許可された文字にスペースを追加することを忘れないでください。削除しないと、削除されます。

1
preg_replace('/[^a-z ]/i', '', $a); // the /i is for case-insensitive 
            // put a space inside the expression 
1

使用preg_replacedocs

<?php 
$string = 'hello my name is ,pate !'; 
// this patter allows all alpha chars and whitespace (tabs, spaces, linebreaks) 
$pattern = '/[^a-zA-Z\s]/i'; 
$replacement = ''; 
echo preg_replace($pattern, $replacement, $string); 
?> 

codepaste.org上でそれを試してみてください:http://codepad.org/ZoqcvtIu

+0

文字クラス内に小さい文字と大きい文字を入れながら、 'i'修飾子を使用します。理由のために修飾語はありますか? – hakre

+0

あなたの応答は正しいですが、私は最初のものを取ったので1つを選択しなければなりませんでした。ありがとう –

+0

ナー、修飾子は無意味ですが、また無害です –

関連する問題