我有这种 html 标签,它在 word 之后的某个点被空格打断masuri:
<p class="mb-40px">Aceasta este o melodie alcatuita din patru masuri:
reluata apoi de catre instrumentul solist cu un cintec popular.</p>
输出:
<p class="mb-40px">Aceasta este o melodie alcatuita din patru masuri: reluata apoi de catre instrumentul solist cu un cintec popular.</p>
我想替换该特定标签中的换行符<p class="mb-40px"></p>
我找到了@Toto 制作的一个旧正则表达式,看起来不错,但没有进行替换以获得输出:
寻找:(?:<p class="mb-40px">|\G)(?:(?!</p>).)*?\s\K\s+
替换为:(leave empty)
答案1
我只是根据您期望的输出做出假设,即您想要替换换行符而不是空格。
这将匹配指定标签内的任何单个换行符:
(<p class="mb-40px">)+(.)+\K(\r\n|\r|\n)(?=.*<\/p>)
解释:
(<p class="mb-40px">)+(.)
匹配开始标记 + 其后的任意字符
\K
重置比赛
(\r\n|\r|\n)
匹配换行符
(?=.*<\/p>)
检查任何字符 +
答案2
因此,删除新闻行的正则表达式是(?<=[^\r\n])\R(?=[^\r\n])
。我将此正则表达式放在这个新的正则表达式公式的末尾。另请参阅下面的源代码,了解我如何设法解决问题。
使用以下内容:
- Ctrl+H
- 寻找:
(?-i:<p class="mb-40px">|(?!\A)\G)(?s:(?!</p>).)*?\K(?-i:(?<=[^\r\n])\R(?=[^\r\n]))
- 用。。。来代替:
\x20
- 查看 相符
- 查看 环绕
- 查看 正则表达式
- 取消选中
. matches newline
- Replace all
我通过阅读来解决这个问题这个话题:
我完全赞同你的新缩写!所以:
Let FR (Find Regex ) be the regex which defines the char, string or expression to be searched
Let RR (Replacement Regex ) be the regex which defines the char, string or expression which must replace the FR expression
Let BSR ( Begin Search-region Regex ) be the regex which defines the beginning of the area where the search for FR, must start
Let ESR ( End Search-region Regex) be the regex which defines, implicitly, the area where the search for FR, must end
然后,通用正则表达式可以表示为:
搜索:(?-i:BSR|(?!\A)\G)(?s:(?!ESR).)*?\K(?-i:FR)
代替:RR