无法使用带有规范化空间和concat函数的Selenium定位器的regexp解析xpath定位器

时间:2015-06-21 12:20:17

标签: regex selenium xpath concat

我花了大量时间尝试为以下xpath创建所需的正则表达式:

//button[(@*[normalize-space()='concat('Let', "'", "s have fun!")' or text()[normalize-space()='concat('Let', "'", "s have fun!")')]|//input[@*[normalize-space()='concat('Let', "'", "s have fun!")' or text()[normalize-space()='concat('Let', "'", "s have fun!")']

结果应如下 - > concat不应该包含在' '

//button[(@*[normalize-space()=concat('Let', "'", "s have fun!") or text()[normalize-space()=concat('Let', "'", "s have fun!"))]|//input[@*[normalize-space()=concat('Let', "'", "s have fun!") or text()[normalize-space()=concat('Let', "'", "s have fun!")]

所以我必须找到这部分文字:concat('Let', "'", "s have fun!") 然后应用匹配器 - > concat('Let', "'", "s have fun!")

我知道我的正则表达式应该类似于:

(=')((concat\()([\'|\"].+[\'|\"]))(\)')$

='开始 然后concat( 然后some expression为concat函数的内部文本(这里我有问题) 然后表达式应该以{{1​​}}

结束

但由于某种原因,我的正则表达不起作用!

你介意向我解释我的问题吗?

1 个答案:

答案 0 :(得分:0)

要匹配concat('Let', "'", "s have fun!"),您可以使用:

"concat\\(['\"].*?['\"],\\s*['\"].*?['\"],\\s*['\"].*?['\"]\\)"