如何用正则表达式移除字符串中每个<前的所有数字?
解决方案
结合你的需求,需要在现有正则处理逻辑基础上,添加移除行首数字前缀和清除标签前嵌入数字的规则,完整处理代码如下:
yourString // 移除行首的数字前缀 .replace(/^\d+/gm, '') // 清除<标签前的嵌入数字(比如Business name4<sup>里的4) .replace(/(\d)(?=<)/g, '') // 移除每行首尾空格(修正原正则笔误,避免误删行首有效字符) .replace(/^\s+|\s+$/gm, '') // 在>后添加换行 .replace(/>/g, ">\r") // 每99个字符插入换行 .replace(/(.{99})/g, "$1\r");
各正则规则说明:
^\d+(全局多行模式gm):匹配每一行开头的一个或多个数字,替换为空,解决行首1、2、7、8这类数字前缀问题。(\d)(?=<):通过正向预查匹配紧跟<的数字,替换为空,处理Business name4<sup>里的4、5*6</sup>里的6这类嵌入数字。^\s+|\s+$(全局多行模式gm):修正你原正则的笔误,原/^.\s+/会错误删除行首第一个非空格字符,调整后仅匹配每行首尾的空格并移除。- 后两个正则保留你原有的功能:在
>后添加换行、每99字符插入换行。
效果验证:
原字符串中的行首数字被移除,3Business name4<sup>变为3Business name<sup>,5*6</sup>变为5*</sup>,同时保留了你需要的首尾空格清理、换行添加功能,最终结果与期望一致。
内容的提问来源于stack exchange,提问作者Eric Guest
相关产品推荐
相关产品推荐

