我遇到以下错误:
"message": "Invalid regular expression: /^(?<basename>[a-zA-Z0-9-]+)(\\?(?<testVersion>[a-zA-Z0-9-]+=[a-zA-Z0-9-]+))?(@(?<rawTimestamp>[^.]+))?\\.json/: Invalid group"
我的正则表达式怎么了?
const FILENAME_ACCEPTOR = /^(?<basename>[a-zA-Z0-9-]+)(\?(?<testVersion>[a-zA-Z0-9-]+=[a-zA-Z0-9-]+))?(@(?<rawTimestamp>[^.]+))?\.json/;
答案 0 :(得分:0)
命名捕获组(于2018年引入)是一件很新的事情。您运行的引擎不得支持它们。如果需要,请使用普通的数字捕获组,然后将其提取到对象中。
const FILENAME_ACCEPTOR = /^([a-zA-Z0-9-]+)(\?([a-zA-Z0-9-]+=[a-zA-Z0-9-]+))?(@([^.]+))?\.json/;
在这里,第一个捕获组([1]
)对应于basename
,第三个[3]
对应于testVersion
,第四个{{1} }将对应于[4]
。 (您的原始正则表达式已经有一个捕获组,该捕获组位于第一个命名组和第三个命名组之间-如果您实际上并未使用它,则可能最好将其删除)