想学习正则的话推荐看这篇文章《正则表达式30分钟入门教程》
以下是工作中曾用到的记录:
提取href和text:
@"(?is)<a[^>]*?href=(['""]?)(?<url>[^'""\s>]+)\1[^>]*>(?<text>(?:(?!</?a\b).)*)</a>"
提取指定div:
@"(?is)<div class=""info"">((?<Open><div[^>]*>)|(?<-Open></div>)|.*?)*?(?(Open)(?!))</div>"
各种空格
[\f\n\r\t\v]
图片src
@"<img.*?src=""([^""]*)"".*?>"
matchSrc.Groups[1].Value
Pattern patternImg = Pattern.compile("<img.*src\\s*=\\s*(.*?)[^>]*?>",Pattern.CASE_INSENSITIVE);
Pattern patternSrc = Pattern.compile("src\\s*=\\s*\"?(.*?)(\"|>|\\s+)");
Matcher mImage = patternImg.matcher(htmlStr);
String img = mImage.group();
Matcher m = patternSrc .matcher(img);
String src = m.group(1);
body
Regex reg = new Regex(@"(?<=<body>)(.*?)(?=</body>)", RegexOptions.IgnoreCase);
去除字符串中的不想要的,想保留的卸载[]内
Regex.Replace(input, @"[^a-zA-Z0-9\u4e00-\u9fa5\s]", "");
去除字符串中的非数字
Regex.Replace(input, @"[^\d]*", "");