此正则表达式可用于pythex,但不适用于python 3.6。我不确定为什么:
python中的代码:
var salesManager = driver.FindElement(By.XPath("//a[@id='ctl00_ContentPlaceHolder_rcbSalesManager_Arrow']"));
var selectSalesManager = new SelectElement(salesManager);
selectSalesManager.SelectByText("Name One");
我无法弄清楚为什么它可以在pythex中工作,而不能在python解释器中工作。
答案 0 :(得分:2)
您可能正在寻找re.search()
而不是re.match()
。后者仅在字符串的开头匹配(意味着锚点^
,即:)
match = re.search(pattern, test, re.IGNORECASE)
# ^^^
if match:
# change the world here
答案 1 :(得分:1)
我怀疑您的问题来自于致电re.match
而不是re.search
。 re.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()。”
这部分:
match = re.match(pattern, test, re.IGNORECASE)
必须是:
match = re.search(pattern, test, re.IGNORECASE)