C#怎么使用正则表达式来替换字符

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>无标题文档</title>
<script type="text/javascript">
function AddUsers(){
alert("这里是测试数据");
}
</script>
<style type="text/css">
.body{
background-color:#C00;
}
</style>
</head>
<body>
这里是测试网页
</body>
</html>

1、需要替换<title>和</title>之间的内容
2、需要删除<style type="text/css">和</style>之间的内容,或在直接删除这快。

用正则表达式匹配删除,如果有其他的解决办法也可以。
在说下是C#的。
因为同类元素很多不只是一个,使用批量查找替换这样代码量太多,得好几十行代码。

第1个回答  推荐于2018-05-07
代码给出 其中(?<=...)表示前置占位但不匹配 (?=...)表示后置占位但不匹配, 恩大概这个意思, 您可以根据需要进行封装为方法

static void Main(string[] args) {
string content = File.ReadAllText("D:\\1.txt", Encoding.Default);
content = Regex.Replace(content, @"(?<=title>)(.*?)(?=</title>)", "你的字符");
content = Regex.Replace(content, "(?<=style.*?>)[^<]*?(?=</style>)", "空为删除");
Console.Write(content);
}本回答被提问者和网友采纳
第2个回答  2010-10-25
这里使用字符串搜索更加方便.
用<head>和</head>确定文档头,然后通过搜索<title>和</title>以及 <style 和 </style> 来确定要删除的部分.
这里并不建议用正则表达式,因为会让本身的逻辑变复杂并出现不确定因素.
相似回答