Man*_*ora 3 c# regex string html-email
我有一个文本段落,可能包含一些网址链接.我需要从该字符串中删除下划线"_".
但正如我所说的文字有url链接和url链接也可能有下划线但不应删除它们的下划线.
链接可以是任何顺序,即这些链接上方或下方可能有一些文本,基本上这是将在电子邮件中发送的电子邮件文本内容.
我正在考虑使用一些正则表达式,但这将删除链接中的下划线,我不想要.我正在考虑取出这些链接,然后删除下划线,然后再添加文本中的链接,但正如我所说,链接可以是不同的顺序,即文本是动态内容.
任何指导将不胜感激,我将从那里采取.谢谢.
您可以使用可变宽度负面的后视(?<!\b(?:https?://\S*|www\.))_:
(?<!\b(?:https?://|www\.)\S*)_
Run Code Online (Sandbox Code Playgroud)
见演示
此正则表达式将匹配任何_前面没有http:/// https:/// www.后跟除whitespace(\S*)之外的任何数字的任何字符.
C#:
var res = Regex.Replace(str, @"(?<!\b(?:https?://|www\.)\S*)_", string.Empty);
Run Code Online (Sandbox Code Playgroud)