我有一個列表:更換正則表達式中
1 name1
2 name2
3 name3
我需要全部更換1,2,3,..., '1', '2', '3' ......和名稱1, name2,name3到'name1','name','name '3。 我知道如何通過'\ n'和'\ s'來做到這一點。
但我認爲存在更好的方法。有人知道這種方式嗎?
我有一個列表:更換正則表達式中
1 name1
2 name2
3 name3
我需要全部更換1,2,3,..., '1', '2', '3' ......和名稱1, name2,name3到'name1','name','name '3。 我知道如何通過'\ n'和'\ s'來做到這一點。
但我認爲存在更好的方法。有人知道這種方式嗎?
繼承人在PHP中的小片段:
$str = "1 name1\n2 name2\n3 name3";
$str2 = preg_replace('!([^\s]+)\s([^\n]+)!sm', "'$1' '$2'", $str);
echo $str2;
它使用了$ 1,$ 2到參考圓形支架字符串
對不起,但你在這裏使用一些語言。 它不工作,如果你只有沒有js和php等編輯器 當然,我可以創建PHP或JS腳本,然後做替換。 與此同時,僅在編輯器中執行此操作很有趣。 – Anthony 2011-03-12 10:04:06
你沒有提到你想在編輯器中做到這一點。在編輯器的查找和替換中試試這個(或者更簡單的JS)。如果它基於PCRE,它應該工作.. – yoavmatchulsky 2011-03-12 10:11:23
這裏是一個JavaScript解決方案在你 '擦肩而過':
str = str.replace(/(\w+)/g, "'$1'");
你可以很容易地用perl,
在unix機器上,從終端:
perl -pe 's/regex/replace/' input > output
(在>輸出是可選的,它只會得到打印到終端)
這樣:
perl -pe "s/([0-9]+)\s(.*)/'\1' '\2'/g" file > file2
這將在開始時找到至少一個數,和捕獲它(如\ 1)。然後是一些空白區域,然後捕獲其餘部分(如\ 2)。之後的/是替換位。只需在's中添加並插入捕獲的位。
(如果你使用的是Windows,你可以得到perl的位置:http://www.perl.org/get.html#more)
我希望你的意思是'爲「名稱1」,「名2」,「name3'',否則邏輯逃避我... – Wrikken 2011-03-12 09:23:16
所以主要目標是將此列表轉換爲數組。數組('1'=>'name1','2'=>'name2','3'=>'name3')。 我想通過netbeans或其他編輯器來使用正則表達式。 – Anthony 2011-03-12 09:30:14