You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何编写可提取符合指定首尾规则字符串的Regex正则表达式

符合需求的正则表达式

最终可用正则(需开启单行匹配模式)

^[A-D]\n\n.*?[,.!?]\n\n$

各部分规则说明

  • ^:锚定匹配字符串的起始位置
  • [A-D]:匹配开头要求的A、B、C、D任意一个大写字母,如需兼容小写开头可修改为[A-Da-d]
  • \n\n:匹配开头字母后紧跟的两个连续换行符
  • .*?:非贪婪匹配中间的任意内容,开启单行模式后可匹配换行符,适配多行内容的场景
  • [,.!?]:匹配结尾要求的逗号、句号、感叹号、问号四个符号中的任意一个
  • \n\n:匹配结尾符号后紧跟的两个连续换行符
  • $:锚定匹配字符串的结束位置

常用语言使用示例

Python 示例

import re

# 待匹配的目标文本
target_text = "A\n\n这是中间的测试内容,可以是多行\n也可以包含任意字符。\n\n"
# 正则规则,(?s) 是内联单行模式标记,无需额外传参数
pattern = r'(?s)^[A-D]\n\n.*?[,.!?]\n\n$'

result = re.match(pattern, target_text)
if result:
    print("匹配成功,提取内容:", result.group())

JavaScript 示例

const targetText = "B\n\n这是JS端的测试内容?\n\n";
// s修饰符开启单行模式
const pattern = /^[A-D]\n\n.*?[,.!?]\n\n$/s;

const matchResult = targetText.match(pattern);
if (matchResult) {
    console.log("匹配成功,提取内容:", matchResult[0]);
}

特殊场景适配

如果需要从大段文本中提取所有符合规则的子串,去掉首尾的^和$锚点即可,正则修改为:
(?s)[A-D]\n\n.*?[,.!?]\n\n

内容的提问来源于stack exchange,提问作者Akshay Jain

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.29 18:36:05