Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/384.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Regex追加字符并删除双引号_Javascript_Regex - Fatal编程技术网

Javascript Regex追加字符并删除双引号

Javascript Regex追加字符并删除双引号,javascript,regex,Javascript,Regex,我尝试在下面的正则表达式中捕捉一些字符串: "CallbackFnCreate_[\W]{4}(.*?[^\w-]) Required Output should be : /TestResult_20190604-120620 (Capture TestResult_20190604-120620 and append "/" in the beginning) 我的第1组输出为:TestResult_20190604-120620“ 1 |#| | | 4 | 3952 |更新

我尝试在下面的正则表达式中捕捉一些字符串:

    "CallbackFnCreate_[\W]{4}(.*?[^\w-])

Required Output should be : /TestResult_20190604-120620 (Capture 
TestResult_20190604-120620 and append "/" in the beginning)
我的第1组输出为:TestResult_20190604-120620“

1 |#| | | 4 | 3952 |更新面板|工作流文件资源管理器| ajaxPanel|`

我的猜测是,我们只想做一个替换,并稍微修改原始表达式:

.+("CallbackFnCreate_\/\*\*\*(.+?)").+
我们期望的输出在此捕获组中:

(.+?)
试验
const regex=/.+(“callbackncreate\/\*\*\*.*(.+?)”)+/gm;
const str=`1 | | | | | | | 4 | 3952 |更新面板|工作流文件资源管理器| ajaxPanel|\`
`;
常量subst=`/$2`;
//被替换的值将包含在结果变量中
const result=str.replace(regex,subst);

log('Substitution result:',result);
只需使用括号捕获相关部分,并在替换时附加“/”

var re=/.+“callbackbuncreate\/\W{3}([^”]+).+/;
var text='1 |#| | | 4 | 3952 |更新面板|工作流文件资源管理器| ajaxPanel |`;
var res=text.replace(重“/$1”)
console.log(res)
const unformatedname='callbackncreate_u3;/***TestResult_20190604-120620';
const found=unformatedName.match(/callbackboncreate\/)[\W]{3}(.*?[^\W-])/);

文件写入(找到[1]+找到[2])您可以在替换中使用捕获组,在第一个捕获组之前的两个组之间放置一个正斜杠

"CallbackFnCreate_\/\*{3}([^"]+)(?=")
解释

  • “callbackncreate_u
    按字面意思匹配
  • \/\*{3}
    匹配
    /
    和3次
    *
  • 捕获组1
    • [^”]+
      匹配1+次非
  • 关闭捕获组
  • (?=”)
    断言右边的是

const regex=/“callbackncreate\/\*{3}([^”\n]+)(?=”)/;
const str=`1 | | | | | | 4 | 3952 | updatePanel | WorkflowFileExplorer | U ajaxPanel | \`;
设res=str.match(regex);

console.log(“/”+res[1])我不能编写像regex.replace这样的自定义代码,因为这需要在Jmeter窗口中完成。它只支持纯regex,比如(+(.callbackncreate\/***(.+?))。+,有没有办法替换/追加('/”)呢?它给我提供了/***TestResult_20190604-120620,我想要/TestResult_20190604-120620我认为它是这样的,我将使用它(CallBacknCreate \(\/(?:***).+?))它将给我/***测试结果\U 20190604-120620,无法找出如何删除这3个星号,我要求它作为/TestResult \U 20190604-120620我无法编写像regex.replace这样的自定义代码,因为这需要在Jmeter窗口中完成,它只支持纯regex,比如(.+(“CallBacknCreate \/***(.+)).+,有没有一种方法可以替换/附加(“/”)呢?你能捕获多个部分并至少附加它们吗?否则,我看不到用一个捕获和任何类型的字符串连接来实现你的要求的任何方法。我的理解是,我将使用它(callbackncreate\/(?:***)。+?)它将给我/***TestResult_20190604-120620,无法找出如何删除这3个星体,我需要它作为/TestResult_20190604-120620您无法合并捕获,因此您可以捕获“/”然后只附加两个捕获的元素,或者您可以附加“/”直接在最后。否则你所要求的是根本不可能的。
"CallbackFnCreate_\/\*{3}([^"]+)(?=")