0
我有以下文件讓我們期望去命名它dummyFile.txt
:正則表達式:更換刺,看起來像什麼(值)值
{
v1: SuperHero("Superman")
},
{
v1: Number(2)
},
{
v1: BadWord("f**")
}
我想變成:
{
v1: "Superman"
},
{
v1: 2
},
{
v1: "f**"
}
到目前爲止,我試過這個腳本:
$contents=file_get_contents('./dummyFile.txt');
$replace=preg_replace('/ \s+\(| \) /',"",$contents);
var_dump($replace);
echo "\n";
但我得到的輸出:
{
v1: SuperHero("Superman")
},
{
v1: Number(2)
},
{
v1: BadWord("f**")
}
這與輸入完全相同。我也試圖替換下面的行:
$replace=preg_replace('/ \s+\(| \) /',"",$contents);
有了:
$replace=preg_replace('/ (SuperHero|Number|BadWord)\(| \) /',"",$contents);
具有相同的結果。你們有沒有任何想法如何解決它?
編輯1:
而且下面的正則表達式不工作:(只供參考)
$replace=preg_replace('/\w+\(| \) /',"",$contents);
它的工作,但我不明白爲什麼。你能再解釋一下嗎?我的意思是preg_replace如何理解$ 1是我想要的值? –
@DimitriosDesyllas正則表達式中的開放括號'()表示捕獲組,它將括號內的所有內容填充到$ 1變量中。有關更多信息,請參閱https://www.regular-expressions.info/brackets.html。另請參閱regex101演示,瞭解正則表達式的完整說明。 –