Python中切割字符串:如何提取指定日期字符串?
嘿,这个问题其实很好解决,我给你两种实用的思路,你可以根据自己的场景选择:
两种提取目标日期的方法
方法一:快速正则匹配(适合结构固定的场景)
如果这段HTML的格式不会变,用正则匹配是最直接简单的方式——我们只需要精准定位到var srvstr='和';之间的内容就行:
import re # 你的HTML字符串 html_content = '<input name="submit" onclick="var srvstr=\'Friday 4th of May 2018\';someweb(srvstr);document.someemail.securitystring.value=\'\';return false;" src="images/button-submit.png" type="image"/>' # 正则匹配目标内容 match_result = re.search(r"var srvstr='(.*?)';", html_content) if match_result: target_date = match_result.group(1) print(target_date) # 输出:Friday 4th of May 2018
这里的.*?是非贪婪匹配,能确保我们只拿到两个标记之间的日期内容,不会多匹配后面的代码。
方法二:用HTML解析库(更健壮,适合复杂HTML场景)
如果以后这段HTML的结构可能发生变化(比如属性顺序调整、新增其他代码),用专业的HTML解析库会更稳妥,比如BeautifulSoup:
首先你需要先安装库:pip install beautifulsoup4
然后用下面的代码:
from bs4 import BeautifulSoup html_content = '<input name="submit" onclick="var srvstr=\'Friday 4th of May 2018\';someweb(srvstr);document.someemail.securitystring.value=\'\';return false;" src="images/button-submit.png" type="image"/>' # 解析HTML soup = BeautifulSoup(html_content, 'html.parser') # 找到对应的input标签 submit_button = soup.find('input', {'name': 'submit'}) # 获取onclick属性的内容 onclick_code = submit_button.get('onclick') # 从onclick代码里提取日期,这里用字符串分割也很方便 date_parts = onclick_code.split("var srvstr='") if len(date_parts) > 1: target_date = date_parts[1].split("';")[0] print(target_date) # 输出:Friday 4th of May 2018
这种方法先正确解析HTML结构,再处理属性内容,比正则更不容易因为HTML的小变动而失效。
内容的提问来源于stack exchange,提问作者P_n
相关产品推荐
相关产品推荐

