2016-01-29 2 views
-2

У меня есть много узлов с различными значениями, как следующее внутри XML-файла JMeter:Блокнот RegEx ++ Заменить "="

HTTPSamplerProxy guiclass = "HttpTestSampleGui" TestClass = "HTTPSamplerProxy" АСМАП = "/ АВМ/авт/Эльба/wizard2? LANG = де & Фрид = afb8764b-cd83-44db-ab12-68ed1a72e0b0" включено = "истинный">

имя stringProp = "HTTPSampler.path">/АМС/авт/Эльба/wizard2 ? lang = de & frid = afb8764b-cd83-44db-ab12-68ed1a72e0b0/stringProp>

Подлежит замене каждый "= или & или? или%», но только если его написано после АСМАПА и нет, если есть

Я использую Notepad ++, но любое другое решение

+0

Вы имеете в виду заменить значение между двойными кавычками, как ' "/ АМС/авт/Эльбы/wizard2? LANG = де-Фрид = afb8764b-cd83-44db-ab12-68ed1a72e0b0"' в ваш пример? –

ответ

0

Если вы действительно хотите удалить только те символы, я думаю, вы могли бы использовать следующее регулярное выражение в цикле до тех пор, пока регулярное выражение больше не сможет ничего сопоставить (я не думаю, что это возможно для того, что вы хотите в одной операции). Регулярное выражение может выполнять замену во всех «testname =» в текстовом файле в один раз, но можно удалить только один недопустимый символ в URL в то время.

/(testname="[^=&?%]+?)([=&?%])(.+?")/ 

и заменить $1$3

  1. захват группы 1: (testname="[^=&?%]+?). Он соответствует буквальному тексту testname = "и соответствует всем символам, не входящим в группу [^=&?%] 0 или больше времени (плюс), как можно меньше времени (знак вопроса означает неживое).
  2. группа захвата 2: ([=&?%]) Capture один и только один символ в группе (один из символов, которые вы хотите удалить)
  3. захвата группы 3:. (.+?") любой символ (точка) еще один или время (плюс) в несколько раз, как возможно (вопросительный знак). В основном соответствует всем, пока вы не достигнете первой двойной кавычки.

Вы должны знать, что эти символы используются для разграничения параметров (знак вопроса для первого параметра и амперсанда для остальных) и присваивают значение параметру (знак равенства), если вы хотите передавать параметры по GET в URL.

Если вы удаляете только те символы, вы больше не будете иметь URL-адрес. Возможно, вы действительно хотите удалить все параметры в URL. В этом случае вы можете использовать это регулярное выражение в одной операции:

/(testname=".*?)\?.*?"/ 

В принципе, вы хотите, чтобы соответствовать все до первого знака вопроса (который указывает первый параметр в URL) в группе захвата. Затем вы берете вопросительный знак вместе со всем, пока не достигнете первой двойной кавычки.

использования, что в качестве замены $1"

Смежные вопросы