Regex 记事本++正则表达式替换“=”

Regex 记事本++正则表达式替换“=”,regex,jmeter,notepad++,jmx,Regex,Jmeter,Notepad++,Jmx,我在JMeter文件的XML中有许多具有不同值的节点,如下所示: HttpSampleProxy GUI类=HttpTestSampleGui测试类=HttpSampleProxy测试名=/ams/AUH/elba/wizard2?lang=de&frid=afb8764b-cd83-44db-ab12-68ed1a72e0b0已启用=真> stringProp name=HTTPSampler.path>/ams/AUH/elba/wizard2?lang=de&frid=afb8764b-c

我在JMeter文件的XML中有许多具有不同值的节点,如下所示:

HttpSampleProxy GUI类=HttpTestSampleGui测试类=HttpSampleProxy测试名=/ams/AUH/elba/wizard2?lang=de&frid=afb8764b-cd83-44db-ab12-68ed1a72e0b0已启用=真>

stringProp name=HTTPSampler.path>/ams/AUH/elba/wizard2?lang=de&frid=afb8764b-cd83-44db-ab12-68ed1a72e0b0/stringProp>

要替换的是every=或&或?或%,但仅当其写在testname之后,而不是


我使用的是Notepad++但任何其他解决方案

如果你真的只想删除那些字符,我想你可以在循环中使用下面的正则表达式,直到正则表达式不再能够匹配任何我认为不可能在单个操作中匹配到你想要的内容。正则表达式可以一次替换文本文件中的所有testname=,但同时只能删除URL中的一个非法字符

/(testname="[^=&?%]+?)([=&?%])(.+?")/
并替换为1美元3美元

捕获组1:testname=[^=&?%]+?。它匹配文本testname=并匹配组中以外的所有字符[^=&?%]0或更多时间加上尽可能少的时间问号表示不贪婪。 捕获组2:[=&?%]捕获组中的一个且仅一个字符,即要删除的字符之一。 捕获组3:.+?将任何字符与点匹配一次或多次,再加上尽可能少的问号时间。基本上匹配所有内容,直到达到第一个双引号。 您应该知道,这些字符用于分隔第一个参数的参数问号和其他参数的符号,如果要通过在URL中获取来传递参数,则为参数指定等号

如果您只删除这些字符,您的URL将不再是有效的。也许您真正想要的是删除URL中的所有参数。在这种情况下,您可以在单个操作中使用该正则表达式:

/(testname=".*?)\?.*?"/
基本上,您希望将所有内容匹配到第一个问号,该问号指示捕获组中URL中的第一个参数。然后,你抓住问号,直到你到达第一个双引号


将其用作替换$1

您的意思是将双引号之间的值替换为/ams/auth/elba/wizard2吗?在您的示例中,lang=de&frid=afb8764b-cd83-44db-ab12-68ed1a72e0b0?