/^/gm匹配每个行首,但怎么排除第一行的行首呢?
问题没有描述清楚,我补充下: 假定有字符串
<p> <ul> <li></li> <li></li> </ul> </p>
想通过正则实现每一行前面加上空格,除了第一行,变成下面的样子:
我目前已经实现的方式是:
replace(/^/gm/, " ").replace(" ", "")
个人感觉很不优雅,需要两步replace,想需求看看是否一步到位的解决方案。
拥有18年软件开发和IT教学经验。曾任多家上市公司技术总监、架构师、项目经理、高级软件工程师等职务。 网络人气名人讲师,...
排除第一行的行首
(?!^)
得看是哪个正则表达式流派 js?js不支持后向查找 不支持(?<=),以下可能不是最佳方法/(\n^)/m 注意参数m是多行模式,匹配结果是位置(0占位)
不支持(?<=)
/(\n^)/m
javascript测试案例 a='11\n'+'22\n'+'33\n' ------------------------------ "11 22 33 " -------------------------------- a.match(/(\n^)/m).length ------------------------------- 2
javascript
测试案例 a='11\n'+'22\n'+'33\n' ------------------------------ "11 22 33 " -------------------------------- a.match(/(\n^)/m).length ------------------------------- 2
a.match(/(?:\n^)(.+)/gm) [" 22", " 33"]
没弄出来...XD,等大神来吧...我只会这两种了
str.replace(/(.*)/g, " $&").replace(/\s*/, "");
str.replace(/(.*)/g, function(index){ if (index == 1) { return "$&"; } else { return " $&"; } );
得看是哪个正则表达式流派
js?js不支持后向查找
不支持(?<=)
,以下可能不是最佳方法/(\n^)/m
注意参数m是多行模式,匹配结果是位置(0占位)没弄出来...XD,等大神来吧...我只会这两种了
str.replace(/(.*)/g, " $&").replace(/\s*/, "");