0

重複の可能性:
PHPは文字列から特殊文字を削除します

この方法で正規表現を見つけたい:

$sms変数にSMSメッセージの本文があります。結果として、次の文字列が作成されます。

- parenthesis
- the non alphanumeric character )([]#@*^?!|"&% and remove the other that remain
- all alphanumeric character and numeric

これは、smsゲートウェイマシンに問題があり、イタリア語で数字を列挙するために頻繁に使用されるこの文字のメッセージが配信されないためです。

これを行うにはPHPを使用する必要がありますが、正規表現だけが大きな助けになります。

4

1 に答える 1

0
$newSMS = preg_replace('/[^)(\[\]#*^?!|"&%a-zA-Z0-9]/', '', $sms);

正規表現は、あなたが記述した文字 ( ) のうち、 ( )[...]ではない ( ) の任意の 1 文字に一致し、それらを空の文字列に置き換えます。これは、本質的にそれらを削除することと同じです。この正規表現は次のように短縮できます。^)(\[\]#*^?!|"&%a-zA-Z0-9''

/[^)(\[\]#*^?!|"&%a-z\d]/i

、および大文字と小文字を区別しないモード ( ) の代わりに使用\dすることで、文字を繰り返す必要はありませんが、特に PHP の数字はとにかく ASCII のみであるため、節約は最小限です。0-9i

于 2012-10-10T00:22:09.507 に答える