如何提取单/双引号内内容并移除引号及前后所有内容?
提取引号内内容的解决方案
我来帮你搞定这个问题!用Python的正则表达式就能完美满足你的需求——不用依赖HTML解析库,精准提取单/双引号内部的内容,完全忽略引号前后的所有文本。
实现思路
核心思路是用正则匹配成对的单引号或双引号,然后捕获引号之间的内容。这里特意用非贪婪匹配,确保只取到最近的结束引号,避免多引号场景下的错误匹配。
完整代码示例
import re def extract_quoted_content(input_text): # 匹配双引号或单引号包裹的内容,非贪婪模式捕获内部文本 pattern = r'["\'](.*?)["\']' match_result = re.search(pattern, input_text) if match_result: return match_result.group(1) # 如果没有找到引号,可根据需求返回空字符串或None return "" # 测试你的示例 test_case1 = '<script src = "https://example.com/file.js"></script>' print(extract_quoted_content(test_case1)) # 输出: https://example.com/file.js test_case2 = "url = 'https://example.com/service/api'" print(extract_quoted_content(test_case2)) # 输出: https://example.com/service/api
正则表达式解释
["\']:匹配双引号"或单引号'(.*?):非贪婪捕获组,匹配引号内的所有字符(直到遇到下一个相同的引号为止)["\']:匹配结束的引号
特殊场景补充
如果你的文本里存在转义引号(比如He said "I\'m happy"),可以调整正则表达式来处理这种情况:
pattern = r'["\'](.*?)(?<!\\)["\']'
这里的(?<!\\)是反向断言,确保结束引号没有被反斜杠转义。
内容的提问来源于stack exchange,提问作者decodebytes
相关产品推荐
相关产品推荐

