我想删除文本中的所有换行符(\ n),除非它在'>'之间。和'<'。
示例:
输入:
"test text \n another\n something\n <br>\n<p>new te\nxt\n etc..."
例外:
"test text another something <br>\n<p>new text etc..."
首先,我试试这个(VB.NET):
X = "[^>]\n[^<]"
Y = Regex.Replace(Text, X, "")
它几乎可以工作,但它删除了两个相邻的角色。
所以我试试这个(VB.NET):
X = "(?<=[^>]\b)\n(?=\b[^<])"
Y = Regex.Replace(Text, X, "")
但它不起作用......
有什么建议吗?
答案 0 :(得分:0)
您可以使用以下内容:
Dim text As String = "test text \n another\n something\n <br>\n<p>new te\nxt\n etc..."
Dim X As String = "((?<=[^>])\\n)|(\\n(?=[^<]))"
Dim Y As String = Regex.Replace(text, X, "")
<强>解释强>
如果新行不跟随((?<=[^>])\\n)
字符,则正则表达式的第一部分(>
)匹配。如果新行不在(\\n(?=[^<]))
字符之前,则正则表达式的第二部分(<
)匹配。在这两个匹配项中,新行被替换为空字符串。