此正则表达式使用.Net Regex类编写。
所以我有这个字符串:
<div style="text-align:center;font-size: 18px;"><span style="font-size:14px;">11th of April 2015</span> 18:10</div>
我有这个正则表达式代码:
[0-9]{1,2}(st|nd|rd|th) of \w{3,9} \d{4}<\/span> \d{1,2}:\d{1,2}
本守则返回此匹配:
11th of April 2015</span> 18:10
Regex是否有可能排除
(st|nd|rd|th) of
和
</span>
匹配中的使其看起来像这样:
11 April 2015 18:10
我尝试过积极的外观,但我没有让它发挥作用。
答案 0 :(得分:3)
您可以对所需的子字符串使用分组,并为您不想要的组使用none capturing:
(\d+)(?:st|nd|rd|th) [a-zA-Z]+ ([a-zA-Z]+) (\d+)<\/span>\s?(\d+:\d+)<\/div>
答案 1 :(得分:0)
您可以使用non-capture group:(?:...)
答案 2 :(得分:0)
您可以匹配所需字符串的各个部分,然后组合捕获组,例如:
var regex34 = new Regex(@"([0-9]{1,2})(?:(?:st|nd|rd|th) of)( \w{3,9} \d{4})<\/span>( \d{1,2}:\d{1,2})");
var input34 = "<div style=\"text-align:center;font-size: 18px;\"><span style=\"font-size:14px;\">11th of April 2015</span> 18:10</div>";
var result = regex34.Match(input34);
var final = result.Groups[1].Value + result.Groups[2].Value + result.Groups[3].Value;
输出: