从匹配中排除子串
Exclude Substring from Match
此正则表达式是使用 .Net 正则表达式编写的 Class。
所以我有这个字符串:
<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}
此代码 return 此匹配项:
11th of April 2015</span> 18:10
正则表达式是否有可能排除
(st|nd|rd|th) of
和
</span>
从匹配中使它看起来像这样:
11 April 2015 18:10
我已经尝试过积极的回顾,但我没有让它发挥作用。
您可以使用 non-capture group:(?:...)
您可以对想要的子字符串使用分组,对不需要的组使用 none capturing:
(\d+)(?:st|nd|rd|th) [a-zA-Z]+ ([a-zA-Z]+) (\d+)<\/span>\s?(\d+:\d+)<\/div>
您可以匹配您需要的字符串部分,然后组合捕获组,例如:
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;
输出:
此正则表达式是使用 .Net 正则表达式编写的 Class。
所以我有这个字符串:
<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}
此代码 return 此匹配项:
11th of April 2015</span> 18:10
正则表达式是否有可能排除
(st|nd|rd|th) of
和
</span>
从匹配中使它看起来像这样:
11 April 2015 18:10
我已经尝试过积极的回顾,但我没有让它发挥作用。
您可以使用 non-capture group:(?:...)
您可以对想要的子字符串使用分组,对不需要的组使用 none capturing:
(\d+)(?:st|nd|rd|th) [a-zA-Z]+ ([a-zA-Z]+) (\d+)<\/span>\s?(\d+:\d+)<\/div>
您可以匹配您需要的字符串部分,然后组合捕获组,例如:
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;
输出: