正则表达式验证:允许换行,但不允许空格

时间:2019-06-11 11:02:40

标签: regex validation

我知道这个站点上有很多关于正则表达式和针对空白进行验证的问题,相信我我已经花了几个小时了。我无法创建满足以下要求的正则表达式验证:

  • 如果文本中包含空格(包括文本开头和结尾),则验证失败
  • 如果文本中包含新行,则允许验证

我很快发现/ s不是一个好选择,因为这在我的第二点上失败了。我设法得到的最接近的是options = webdriver.ChromeOptions() options.add_argument("start-maximized") # options.add_argument('disable-infobars') options.add_argument('--disable-extensions') driver=webdriver.Chrome(chrome_options=options, executable_path=r'C:\Utility\BrowserDrivers\chromedriver.exe') driver.get("https://www.indiacashandcarry.com/shop/HomestyleFood") WebDriverWait(driver, 20).until(EC.element_to_be_clickable((By.XPATH, "//h4[contains(., 'Fremont')]/a"))).click() WebDriverWait(driver, 20).until(EC.element_to_be_clickable((By.XPATH, "//h5[@class='mtopbot5 ng-binding' and contains(., 'Groceries')]"))).click() ,它恰好标记了相反的含义(空格通过但其他所有操作均失败)。

我已经尝试过以某种方式将其反转,但并没有取得太大的成功。

1 个答案:

答案 0 :(得分:1)

锚定到字符串的开头,用[^ ]*重复匹配除空格以外的任何内容,然后锚定到字符串的末尾:

^[^ ]*$

这匹配0个或多个非空格字符,但将允许换行。 (如果要使用1个或多个非空格字符,请使用+而不是*