1

私はリストを持っています:

1  name1
2  name2
3  name3

すべての1,2,3...を「1」、「2」、「3」に置き換え、name1、name2、name3を「name1」、「name」、「name」3に置き換える必要があります。'\n'と'\s'を介してそれを行う方法を知っています。

しかし、もっと良い方法があると思います。誰かがこのように知っていますか?

4

3 に答える 3

2

JavaScriptソリューションは次のとおりです。

str = str.replace(/(\w+)/g, "'$1'");
于 2011-03-12T09:33:46.153 に答える
2

あなたはperlでそれを簡単に行うことができます、

UNIXマシンでは、ターミナルから:

perl -pe 's/regex/replace/' input > output

(>出力はオプションであり、端末に出力されるだけです)

それで:

perl -pe "s/([0-9]+)\s(.*)/'\1' '\2'/g" file > file2

これにより、最初に少なくとも1つの番号が見つかり、それをキャプチャします(\ 1として)。次に、空白、次に行の残りの部分がキャプチャされます(\ 2として)。/の後は置換ビットです。' sを追加し、キャプチャされたビットを挿入するだけです。

(Windowsを使用している場合は、ここでperlを入手できます:http://www.perl.org/get.html#more

于 2011-03-12T10:39:22.873 に答える
1

PHPのスニペットを次に示します。

$str = "1 name1\n2 name2\n3 name3";
$str2 = preg_replace('!([^\s]+)\s([^\n]+)!sm', "'$1' '$2'", $str);
echo $str2;

$1と$2を使用して、文字列で「キャッチ」した丸かっこを参照します

于 2011-03-12T09:32:48.663 に答える