3

PHP コードの段落にあるいくつかの疑問符を削除したいと考えています。

例えば:

$str = " Hi ?How? are you? Hope you are good. ";

出力は次のようになります。

$str = " Hi How are you? Hope you are good. ";

したがって、段落内の開始文字と終了文字「?」を含む単語は、(疑問符) の場合、両方の疑問符を削除する必要があります。提案してください。これを達成するための最良の方法を提案してください。

4

5 に答える 5

0
$str = " Hi ?How? are you? Hope you are good. ";
echo preg_replace("/\?(\w+)\?/", "$1", $str);
于 2013-01-10T09:04:53.827 に答える
0

最も簡単な正規表現は、その\?([^\?\s]+)\?ときあなたの単語がグループ1にある場所です。phpが必要とするように、おそらくそれをエスケープする必要があります。

于 2013-01-10T09:05:12.770 に答える
0

これを試して:

$str = " Hi ?How? are you? Hope you are good. ";

$newstr = preg_replace('/\?([a-z0-9]{1,}?)\?/si','$1',$str);
echo $newstr;
于 2013-01-10T09:03:00.147 に答える
0

次のことを試してください。

$str = preg_replace('/\\?(\\w+)\\?','$1',$str);

これは、 で囲まれた任意の「単語」と一致し?ます。は\w「任意の単語文字 (文字、数字、アンダースコア)」に一致します。+「1つ以上」という意味です。それらも一致させて削除したい場合??は、 に置き換えることができます*

于 2013-01-10T09:03:12.407 に答える
0
$string = " Hi ?How? are you? Hope you are good. ";
$pattern = "/\?(\w+)\?/";
$replacement = '${1}';
echo preg_replace($pattern, $replacement, $string);
于 2013-01-10T09:03:30.020 に答える