0

私はコードの長いリストを持っています:

BR 1111
BR 2222
CO 3333

それらが最終的になるように、それらの内部からスペースを削除する必要があります。

BR1111
BR2222
CO3333

私はこれを無駄に試しました:

preg_replace('/(\D{2})\s(\d{4})')

何か案は?ありがとう!

どうもありがとう。クリーンアップするこれらのコードのリストを追加するために、フォームテキスト領域を含むHTMLページを追加しようとしています。

<form name="f" action="clean.php" method="POST"> <textarea cols="70" rows="7" name="str" > <?php echo $str; ?> </textarea> <br /> <input type="submit" value=" Code Cleaner " style="font-size:18px; color:#ff0000;"> </form> 

私は何が間違っているのですか?どうも

4

3 に答える 3

0

これはそれを行う必要があります:

$string = preg_replace('/([A-Z]{2})\s*([0-9]+)/','$1$2',$string);

でテストしたBR 1111 BR 2222 CO 3333ところ、返されました。'BR1111 BR2222 CO3333' あるいは、そのリストが単純なcsvまたはtxtファイルである場合は、次のVimコマンドを使用できます。

:%s/\([A-Z]\+\)\s*/\1/g

よくわからない場合は、最後にフラグを追加して、c置き換えられる前にすべての一致を確認したいだけです。

:%s/\([A-Z]\+\)\s*/\1/gc

を押しyて確認し、置換(スペースを削除)nしてスキップします

于 2012-11-08T12:27:12.893 に答える
0

正規表現は正常に/([A-Z]{2})\s+(\d{4})/機能するはずです。

基本的に-AZからの2文字の後に1から無制限のスペースが続き、その後に4桁の数字が続きます。

preg_replace("/([A-Z]{2})\s+(\d{4})/", "$1$2", $string);

すべてのスペースを削除したい場合、str_replace(" ", "", $string)または正規表現で/ +/うまくいく場合:

str_replace(" ", "", $string);

また

preg_replace("/ +/", "", $string);
于 2012-11-08T12:27:26.753 に答える
0

スペース文字のみを削除する必要がある場合は、次の2つのオプションがあります。

  1. 正規表現:

    $s = preg_replace("/ /", "", $s);
    
  2. 非正規表現:

    $s = str_replace(" ", "", $s);
    

ただし、数字以外の2文字と4桁の間のスペースを削除する必要がある場合は、次を使用します。

$s = preg_replace("/(?<=\D{2}) (?=\d{4})/", "", $s);
于 2012-11-08T12:44:05.983 に答える