如何提取字符串中{#}与{/#}之间的文本?
提取{#}与{/#}之间文本的方法
直接用正则表达式就能高效解决这个问题,核心是匹配标记对并捕获中间的内容。
核心正则规则
用{#}(.*?){/#}这个正则:
{#}:匹配开头的标记(.*?):非贪婪捕获任意字符(?确保只匹配到最近的{/#},不会跨块提取内容){/#}:匹配结尾的标记
代码示例
Python 实现
import re # 示例输入字符串 input_text = "示例文本{#}要提取的第一段内容{/#}无关内容{#}第二段提取内容{/#}" # 定义正则模式 pattern = r"{#}(.*?){/#}" # 提取所有匹配的内容 result = re.findall(pattern, input_text) print(result) # 输出: ['要提取的第一段内容', '第二段提取内容']
JavaScript 实现
const inputText = "示例文本{#}要提取的第一段内容{/#}无关内容{#}第二段提取内容{/#}"; const pattern = /{#}(.*?){/#}/g; const result = []; let match; // 循环提取所有匹配项 while ((match = pattern.exec(inputText)) !== null) { result.push(match[1]); } console.log(result); // 输出: ['要提取的第一段内容', '第二段提取内容']
注意事项
如果你的文本中{#}和{/#}是成对且无嵌套的,这个方法完全适用;要是存在嵌套结构,正则处理会非常麻烦,这种情况建议用专门的解析器来处理。
内容的提问来源于stack exchange,提问作者AndryAndryAndry
相关产品推荐
相关产品推荐

