1

各単語を分割し、組み込みのローカル辞書と比較して、別の言語の同等の単語に置き換える必要があります。単語を特殊文字 (*例: *of!) で分割すると、辞書と一致しません。それらは同じです。

ここで、これらの特殊文字を空の文字列に置き換える必要があります。

$opis="of!";
$a=preg_replace('!"#$%&/()=?*+'-.,;:_', '', $opis);
print_r($a);
4

7 に答える 7

3

str_replaceまたは使用できますpreg_replace

preg_replace http://php.net/manual/en/function.preg-replace.php

  $str = preg_replace("/\W+/", '', $str);
  var_dump($str);

str_replace http://php.net/manual/en/function.str-replace.php

$search =  '!"#$%&/()=?*+\'-.,;:_' ;
$search = str_split($search);
$str = "OF!" ;

var_dump(str_replace($search, "", $str));

出力

string 'OF' (length=2)
于 2012-04-16T12:05:38.753 に答える
1

ここに正規表現について投稿するみんなの何が問題なのですか? :/

さて、あなたが現在のソリューションで抱えている問題は、正規表現の書き方にあります。

ステップ 1: RegEx のすべての内部特殊文字を単一でエスケープ\します (文字列に残した余分な単一引用符も同様です...)

結果:

'!"#\$%&/\(\)=\?\*\+\'-\.,;:_'

ステップ 2: 結果を文字クラスにカプセル化します。そうしないと、RegEx は文字列のすべての出現を置き換えようとします!"#$%&/()=?*+'-.,;:_

これは明らかにあなたが望んでいることではありません。

カプセル化後:

'[!"#\$%&/\(\)=\?\*\+\'-\.,;:_]'

最後に、正規表現を何かで区切る必要があります (PHP では、正規表現を定義するためにこれが必要です)。また、できるだけ多くの連続する記号に一致するように貪欲な「+」記号も追加します。

最後の:

'~[!"#\$%&/\(\)=\?\*\+\'-\.,;:_]+~'

これで準備完了です:

$opis="of!";
$opis = preg_replace('[!"#\$%&/\(\)=\?\*\+\'-\.,;:_]+', '', $opis);
print_r($opis)

楽しみ。次回はここで正規表現情報を入手するのに最適な場所を参照してください

于 2012-04-16T12:20:32.333 に答える
0

正規表現を使用する際の問題は、文字列内のいくつかの文字をエスケープする必要があることです。これは、正規表現が多数の特殊文字を使用しているためです。リストはここにあります: http://www.regular-expressions.info/reference.html

str_replace のような関数を使用すると、より簡単な解決策になります。

于 2012-04-16T12:05:24.820 に答える
0

str_replace(); 必要なものです。

PHPの公式ドキュメントから:

// Provides: Hll Wrld f PHP
$vowels = array("a", "e", "i", "o", "u", "A", "E", "I", "O", "U");
$onlyconsonants = str_replace($vowels, "", "Hello World of PHP");
于 2012-04-16T12:06:01.350 に答える
0

str_replace を使用するのはどうですか! パフォーマンスへの影響が小さい

$chars= array("!", "\"", "#", "$", "%", "&", "/", "(", ")", "?", "*", "+", "'", "-", ".", ",", ";", ":", "_");
$cleanstring = str_replace($chars, "", $yourstring);
于 2012-04-16T12:07:16.293 に答える
0

それはあなたが探しているものですか?

http://php.net/manual/fr/function.str-replace.php

$result = str_replace($search, $replace, $subject);
于 2012-04-16T12:03:10.847 に答える
0

上記にはこの正規表現を使用します

$a=preg_replace("/[^A-Za-z0-9]/", '', $opis);

テスト済み

于 2012-04-16T12:04:45.277 に答える