我对Regex很弱,需要帮助。输入如下所示:
<span> 10/28 Currency: USD
所需的输出为10/28
。
我需要获取<span>
和“Currency:”之间的所有文本,即数字,“/”字符或“:”字符。没有空格。
答案 0 :(得分:3)
已更新:您所描述的内容分为三个部分。
我们做想要的是一个或多个字符,数字,正斜杠和:
:[0-9/:]*
(星号表示“零个或多个实例”)。被...包围:
<span>(optional stuff we don't want)
表示为:<span>[^0-9/:]*
(optional stuff we don't want)Currency
是:[^0-9/:]*Currency
(^
表示“不是”) - 所以这基本上会匹配任何不是我们想要的位数的字符,包括
在c#中:
string pattern = @"<span>[^0-9/:]*(?<value>[0-9/:]*)[^0-9/:]*Currency";
Match match = Regex.Match(input, pattern, RegexOptions.SingleLine | RegexOptions.IgnoreCase);
string output = match.Groups["value"].Value;
答案 1 :(得分:1)
这是一个很好的起点。使用其他代码起初很好,但如果你不学习这些东西,那么每当你需要一个新的正则表达式时,你将永远注定要问问题。
花一些时间,学习基础知识,很快你就会帮助我们处理正则表达式问题。
答案 2 :(得分:1)
试试这个正则表达式:
<span>(?>.*?([\d/:]+)).*?Currency
.*?
匹配最少的任何内容(非贪婪的正则表达式。)它应该适用于您的示例<span> 10/28 Currency: USD
。
这是a nice site来测试正则表达式。