【发布时间】:2021-04-13 10:04:06
【问题描述】:
我有一个很大的字符串值,我正在尝试找到在不更改 URL 中的任何值的情况下替换某个文本值的最佳方法。
例如,假设我想用“hello”替换单词“google”。我有一个大字符串值,其中包含多个“hi”实例和字符串值“https://www.google.com”中的 url(这只是一个示例)。替换这些值的最佳途径是什么,可能是对字符串的拆分、正则表达式或替换?
目前我有这样的事情:
var data = "<h1>google this is a sample text</h1><p> more text will go here so, google. <a href='https://google.com'> Link here </a>";
var test = "";
if(data.Contains("google")){
test = data.Replace("google", "hello");
}
// for case sensitivity
if(data.Contains("Google")){
test = data.Replace("Google", "hello");
}
有没有更好的替代方法,有没有办法不替换 url 中的文本?
【问题讨论】:
-
regex 可能可以在这里解决问题。
-
你的输入字符串是什么样子的? “单词”和 URL 之间是否有空格或任何其他分隔符?
-
你能给不同类型的输入字符串举个例子吗
-
现在我将在输入字符串中添加更多细节,但实际上它看起来像 html
-
你总是要解析 HTML 吗?因为如果是这样,我建议使用类似HtmlAgilityPack 和使用this Q&A 来获取正文的文本,然后使用this Q&A 替换您想要的字符串,忽略大小写
标签: c#