以下是在python中抓取时从网站收集的一些汽车信息。
Maruti Suzuki A-Star [2008-2012]Vxi
Hyundai Xcent [2014-2017]SX 1.2 (O)
Ford Figo [2010-2012]Duratorq Diesel Titanium...
Honda CR-V [2009-2013]2.4 AT
Maruti Suzuki Wagon R 1.0 [2010-2013]LXi CNG
Audi A4
Mercedes-Benz E-Class
BMW X3
BMW 3 Serie分配给我的任务是提取2010、2008、2014和2009年的日期。这些是在-符号之前的
我试图提取它们的模式是[^\-\/\s]\d{4}。
我尝试过的上述模式的输出

发布于 2020-04-15 01:02:51
被取反的字符类[^\-\/\s]匹配的不仅仅是开头的[
要获得更具体的匹配,您可以使用当年的捕获组(\d{4})。
\[(\d{4})-\d{4}\]要仅匹配以20开头的日期:
\[(20\d{2})-\d{4}\]例如
import re
regex = r"\[(20\d{2})-\d{4}\]"
test_str = ("Maruti Suzuki A-Star [2008-2012]Vxi\n\n"
"Hyundai Xcent [2014-2017]SX 1.2 (O)\n\n"
"Ford Figo [2010-2012]Duratorq Diesel Titanium...\n\n"
"Honda CR-V [2009-2013]2.4 AT\n\n"
"Maruti Suzuki Wagon R 1.0 [2010-2013]LXi CNG\n\n"
"Audi A4\n\n"
"Mercedes-Benz E-Class\n\n"
"BMW X3\n\n"
"BMW 3 Serie\n\n\n"
"Honda CR-V [1909-2013]2.4 AT")
print(re.findall(regex, test_str))输出
['2008', '2014', '2010', '2009', '2010']https://stackoverflow.com/questions/61213055
复制相似问题