0

preg_replace 関数を使用します。アポストロフィ ( ' ) 文字を削除しない機能が必要です。だから私はそれが (o'clock) として単語を返すことを望みます。どうやってやるの?

$last_word = "o'clock.";

$new_word= preg_replace('/[^a-zA-Z0-9 ]/','',$last_word);

echo $new_word; 
4

5 に答える 5

1

試す:

$last_word = "o'clock.";
$new_word= preg_replace('/[^a-zA-Z0-9\' ]/','',$last_word);
echo $new_word;

デモはこちら: http://ideone.com/JMH8F

于 2012-07-26T12:09:37.183 に答える
0

これを試して。それは役立つかもしれません。

$new_word= preg_replace('/\'/', '', $last_word);

デモ:http ://so.viperpad.com/F82z9o

于 2012-07-26T12:13:49.600 に答える
0

その正規表現は、文字と数字を除くすべての文字を明示的に削除します。先頭の「^」に注意してください。だから、あなたが頼んだことをします。

そのため、正規表現内の除外セットに "'" (アポストロフィ) を追加する可能性が最も高くなります。

'/[^a-zA-Z0-9\' ]/'
于 2012-07-26T12:09:38.170 に答える
0

オリジナル'/[^a-zA-Z0-9 ]/'を に変更します"/[^a-zA-Z0-9 ']/"。これは単に、否定された文字クラスにアポストロフィを含めるだけです。

オンラインの例を参照してください。

"o'clock."余談ですが、バックスラッシュ エスケープと PHP 文字列や正規表現パターンを混在させるとすぐに混乱する可能性があるため、文字列に二重引用符を使用することをお勧めします ( の場合と同様)。

于 2012-07-26T12:09:49.667 に答える
-1

使用する正規表現は、「'」(アポストロフィ) を削除しません。代わりに、「.」が原因で、件名の文字列とはまったく一致しません。(ドット)。その場合、preg_replace() は NULL を返します。

于 2012-07-26T12:04:13.850 に答える