我在Java中使用以下正则表达式来匹配用户名:
^(?!.*\\..*\\..*)[A-Za-z]([A-Za-z0-9.]*[A-Za-z0-9]){8,15}$
我希望这个正则表达式与包含所有字母数字字符的字符串匹配(以字母开头),中间允许最多一个句点(点),大小在8到15之间。
因此,它有两个问题:
为什么不考虑{8,15}
?
答案 0 :(得分:1)
问题1 :您之前需要量化至少需要[A-Za-z0-9]
[A-Za-z0-9.]
个[A-Za-z]
的群组。因此已经需要至少8个字符。另外,你的正则表达式在此构造之前需要[A-Za-z0-9.]*
,至少需要9个字符。
问题2 :您正在量化一个包含{8,15}
任意金额且此^(?![^.]*\\.[^.]*\\.)[A-Za-z](?:\\.?[A-Za-z0-9]){7,14}$
的组,因此上限为15x(任意金额)=∞< / p>
猜猜你之后的正则表达式看起来与此相似:
from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
driver = webdriver.Chrome()
driver.get("https://acwi.gov/monitoring/vm/programs/vm_map.html")
wait = WebDriverWait(driver, 10)
element = wait.until(EC.presence_of_all_elements_located((By.TAG_NAME, 'iframe')))
driver.switch_to.frame(driver.find_element_by_tag_name("iframe"))
for item in driver.find_elements_by_xpath("//g[@id='NWQMC_VM_directory_June2016_3915_0_layer']"):
item.find_element_by_xpath(".//circle[@fill='rgb(237, 81, 81)']").click()
driver.quit()