提取字符串信息的方法取决于具体任务、编程语言以及字符串的结构。下面我按常见场景给你系统梳理,并配有示例,你可以按需选用。
适合:已知位置或长度
s = "HelloWorld"
print(s[0:5]) # Hello
print(s[-5:]) # World
适合:CSV、日志、路径、参数等
s = "name=Tom&age=18"
parts = s.split("&")
print(parts) # ['name=Tom', 'age=18']
或进一步提取:
result = {}
for p in parts:
k, v = p.split("=")
result[k] = v
适合:格式不固定、复杂规则
import re
s = "订单号是12345,金额是99.8"
nums = re.findall(r"\d+", s)
print(nums) # ['12345', '99', '8']
text = "联系我:test@example.com"
email = re.search(r"\w+@\w+\.\w+", text)
print(email.group())
s = "姓名:张三,年龄:25"
name = re.search(r"姓名:(\w+)", s).group(1)
import json
s = '{"name":"Tom","age":18}'
data = json.loads(s)
print(data["name"])
import xml.etree.ElementTree as ET
xml_str = "<user><name>Tom</name></user>"
root = ET.fromstring(xml_str)
print(root.find("name").text)
✅ 不推荐只用正则,推荐解析器
from bs4 import BeautifulSoup
html = "<div class='title'>Hello</div>"
soup = BeautifulSoup(html, "html.parser")
print(soup.div.text)
import re
s = "密码是123456,请保存"
pwd = re.search(r"密码是(.+?),", s).group(1)
✅ split() / re / json
String s = "a,b,c";
String[] arr = s.split(",");
"a,b,c".split(",");
| 场景 | 推荐方式 |
|---|---|
| 固定格式 | 字符串切片 |
| 有明确分隔符 | split |
| 复杂规则 | 正则表达式 |
| 结构化数据 | JSON / XML 解析 |
| HTML | BeautifulSoup / DOM |
你可以直接告诉我:
1️⃣ 使用的语言(Python / Java / JS 等)
2️⃣ 示例字符串
3️⃣ 想提取的具体内容
我可以给你定制的提取代码。