python中的正则表达式不起作用-在pythex中工作,但在python 3.6中不工作

时间:2019-02-13 19:51:35

标签: python regex

此正则表达式可用于pythex,但不适用于python 3.6。我不确定为什么:

Pythex link (click)

python中的代码:

 var salesManager = driver.FindElement(By.XPath("//a[@id='ctl00_ContentPlaceHolder_rcbSalesManager_Arrow']"));

 var selectSalesManager = new SelectElement(salesManager);

selectSalesManager.SelectByText("Name One");

我无法弄清楚为什么它可以在pythex中工作,而不能在python解释器中工作。

3 个答案:

答案 0 :(得分:2)

您可能正在寻找re.search()而不是re.match()。后者仅在字符串的开头匹配(意味着锚点^,即:)

match = re.search(pattern, test, re.IGNORECASE)
#            ^^^
if match:
    # change the world here

请参见a demo on regex101.com

答案 1 :(得分:1)

我怀疑您的问题来自于致电re.match而不是re.searchre.search函数尝试在给定的字符串中查找正则表达式,而re.match要求正则表达式在字符串的开头进行匹配。

更改此:

match = re.match(pattern, test, re.IGNORECASE)

对此:

match = re.search(pattern, test, re.IGNORECASE)

答案 2 :(得分:0)

问题是match()用于匹配字符串的开头,而不是此处。 来自python docs:(Python docs for match()

“如果字符串开始处的零个或多个字符与该正则表达式匹配,则返回相应的匹配对象。”

您应该改用search(): “如果要在字符串中的任何位置找到匹配项,请改用search()。”

see also search() vs. match()

这部分:

match = re.match(pattern, test, re.IGNORECASE)

必须是:

match = re.search(pattern, test, re.IGNORECASE)