为什么我这个python 正则表达式式会和预想的匹配结果不符

他的最新文章
他的热门文章
您举报文章:
举报原因:
原文地址:
原因补充:
(最多只允许输入30个字)在 SegmentFault,学习技能、解决问题
每个月,我们帮助 1000 万的开发者解决各种各样的技术问题。并助力他们在技术能力、职业生涯、影响力上获得提升。
问题对人有帮助,内容完整,我也想知道答案
问题没有实际价值,缺少关键内容,没有改进余地
这个正则是希望对一段文本中 未被某些指定html标签包裹的 段落(换行) 用p标签包裹指定HTML标签:&div&&blockquote& || &/div&&/div&输入整体看起来是这样:
const content =
一个段落\换行
(空内容直接换行)
另一个段落\换行
&div&(此处没有换行,为了方便看)
&blockquote&......一段引用......&/blockquote&
&div&一些额外的信息&/div&
期望结果:
&p&一个段落&/p&
&p&另一个段落&/p&
&div&(此处没有换行,为了方便看)
&blockquote&......一段引用......&/blockquote&
&div&一些额外的信息&/div&
代码如下:
let isRegMatchingQuote = //是否已经匹配到'&div&&blockquote&'
content = content.replace(/(.*)/gm, (matched, param, offset, string) =& {
const flag = matched.match(/&div&&blockquote&|&/div&&/div&/);
if(flag) isRegMatchingQuote = !isRegMatchingQ
if(!isRegMatchingQuote) return `&p&${param}&/p&`
return matched
实际结果:
&p&一个段落&/p&&p&&/p&
&p&另一个段落&/p&&p&&/p&
&div&(此处没有换行,为了方便看)
&blockquote&......一段引用......&/blockquote&
&div&一些额外的信息&/div&
每次后面都会多出一组P标签是为什么呢?
答案对人有帮助,有参考价值
答案没帮助,是错误的答案,答非所问
修改完并达到预期的代码如下:
let isRegMatchingQuote = //是否已经匹配到'&div&&blockquote&'
content = content.replace(/^.*/gm, (matched, param, offset, string) =& {
const flag = matched.match(/&div&&blockquote&|&/div&&/div&/);
if(flag) isRegMatchingQuote = !isRegMatchingQ
if(!isRegMatchingQuote) return `&p&${param}&/p&`
return matched
好像换行与新行之间有什么东西,有兄弟知道吗?
答案对人有帮助,有参考价值
答案没帮助,是错误的答案,答非所问
换行符被匹配到了?
同步到新浪微博
分享到微博?
关闭理由:
删除理由:
忽略理由:
推广(招聘、广告、SEO 等)方面的内容
与已有问题重复(请编辑该提问指向已有相同问题)
答非所问,不符合答题要求
宜作评论而非答案
带有人身攻击、辱骂、仇恨等违反条款的内容
无法获得确切结果的问题
非开发直接相关的问题
非技术提问的讨论型问题
其他原因(请补充说明)
我要该,理由是:
在 SegmentFault,学习技能、解决问题
每个月,我们帮助 1000 万的开发者解决各种各样的技术问题。并助力他们在技术能力、职业生涯、影响力上获得提升。

我要回帖

更多关于 java正则表达式 的文章

 

随机推荐