下面的代码工作,但我不知道是否有更好的方法来达到同样的效果:正则表达式测试,有没有更好的方法来写这个?
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
更快和最佳化 –