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

Dart中如何使用正则表达式将<br /> HTML标签替换为换行符'\n'

Dart 基于RegExp替换<br />标签为换行符的实现方法

基础场景实现(匹配题目给定样例)

直接通过Dart内置的RegExp类构造匹配<br />的正则规则,调用字符串的replaceAll方法完成全量替换即可,代码如下:

void main() {
  // 输入样例
  const inputStr = 'one<br />two<br />three';
  // 构造匹配<br />标签的正则
  final brReg = RegExp(r'<br />');
  // 执行替换
  final result = inputStr.replaceAll(brReg, '\n');
  print(result);
}

运行上述代码会输出符合预期的结果:

one
two
three

实际开发兼容优化版

真实业务场景中HTML的br标签可能存在多种不规范写法,比如无空格的<br/>、多空格的<br />、非自闭合的<br>、大小写混写的<BR />等,可以调整正则规则兼容以上场景:

void main() {
  const inputStr = '第一段<br>第二段<br/>第三段<br  />第四段<BR />第五段';
  // 正则说明:
  // 1. <br 匹配br标签开头
  // 2. \s* 匹配0到多个空白字符,兼容不同空格数量
  // 3. /? 匹配0到1个自闭合斜杠,兼容非自闭合br写法
  // 4. caseSensitive: false 忽略大小写,兼容大写标签
  final brReg = RegExp(r'<br\s*/?>', caseSensitive: false);
  final result = inputStr.replaceAll(brReg, '\n');
  print(result);
}

如果场景中存在带属性的br标签(比如<br class="break" />),可以将正则替换为RegExp(r'<br[^>]*>', caseSensitive: false),即可匹配任意格式的br标签。

注意:写Dart正则时推荐给字符串加r前缀创建原始字符串,不需要额外对反斜杠做转义,能减少正则书写错误。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.26 12:33:14