如何用正则表达式删除字符串末尾的所有HTML br类换行标签
你当前编写的正则逻辑存在错误:方括号[]在正则中属于字符组语法,仅会匹配组内的单个字符,因此会出现误匹配空格、单个字母的问题,同时你没有添加末尾锚定规则,才会匹配到全局所有br标签而非仅字符串结尾的目标内容。
正确正则表达式
\s*(?:<br\s*\/?>)*\s*$
规则说明
\s*匹配br标签前可能存在的任意数量空白字符(?:<br\s*\/?>)*为非捕获组,可匹配0个及以上任意格式的br标签:<br匹配br标签的固定开头\s*兼容br和斜杠之间存在任意数量空格的写法(比如<br />这类多空格格式)\/?匹配可选的斜杠,同时兼容<br>无斜杠的标准写法>匹配标签的闭合符号
$锚定匹配到字符串末尾,确保只会匹配结尾部分的内容,不会影响字符串中间的br标签
使用方法
将上述正则匹配到的内容直接替换为空字符串,即可得到你需要的处理结果。
内容的提问来源于stack exchange,提问作者Adam
相关产品推荐
相关产品推荐

