下面的代碼工作,但我不知道是否有更好的方法來達到同樣的效果:正則表達式測試,有沒有更好的方法來寫這個?
var regex = /define\((\s+)?['|"](PRIVATE_KEY)['|"],(\s+)?['|"](.*)['|"](\s+)?\)/i;
測試:
regex.test("define('PRIVATE_KEY', 'MYSECRETKEY');");
https://regex101.com/r/pW0qS0/4
下面的代碼工作,但我不知道是否有更好的方法來達到同樣的效果:正則表達式測試,有沒有更好的方法來寫這個?
var regex = /define\((\s+)?['|"](PRIVATE_KEY)['|"],(\s+)?['|"](.*)['|"](\s+)?\)/i;
測試:
regex.test("define('PRIVATE_KEY', 'MYSECRETKEY');");
https://regex101.com/r/pW0qS0/4
首先,我認爲你不在字符類中不需要使用pip(如果只想匹配一個報價和雙引號),而不是(\s+)?
,則可以使用\s*
:
/define\(\s*['"](PRIVATE_KEY)['"],\s*['"](.*)['"]\s*\)/i
它的工作原理,謝謝 –
只有把括號圍繞MYSECRETKEY部分,因爲這是你想要捕捉的部分。
var regex = /^define\(\s*['"]PRIVATE_KEY['"]\s*,\s*['"](.*?)['"]\s*\);$/i;
像往常一樣,添加\ s *和開始和結束錨點^和$這樣的事情取決於您對輸入格式化方式的確定程度。 – m69
你的意思是'更好'是什麼意思? – Gary
更快和最佳化 –