假设我的输出看起来像这样:
04 12 2014 145 15
04 12 2014 180 05
04 12 2014 141 65
我想以某种方式解析日期,看起来像这样
04 12 2014
04 12 2014
04 12 2014
。
为了澄清我需要这种情况,我试图从网站中提取一些日期,看看是否有最近添加的日期。
foreach (HtmlNode node in doc.DocumentNode.SelectNodes("//table[@id='searchResult']/tr/td/font[@class='detDesc']"))
{
string input = node.InnerHtml.ToString();
//The [^0-9] expression is used to find any character that is NOT a digit, will replace with empty string
input = Regex.Replace(input, "([^0-9]+)"," ");
//populate list with input
uploadList.Add(input);
Console.WriteLine(input);
}
我已经尝试了几次,但这是我能够达到的最佳数据形式。任何人都可以指导我,以便了解吗?
谢谢
答案 0 :(得分:1)
替换以下行:
string input = node.InnerHtml.ToString();
//The [^0-9] expression is used to find any character that is NOT a digit, will replace with empty string
input = Regex.Replace(input, "([^0-9]+)"," ");
与
string input = Regex.Replace(node.InnerHtml.ToString(), @"(?s)^.*?(\d{2})\D*(\d{2})\D*(\d{4}).*", "$1 $2 $3");
请参阅regex demo。
模式匹配:
(?s)
- RegexOptions.Singleline
匹配任何字符时启用.
模式^
- 字符串的开头.*?
- 任何0 +字符到第一个...... (\d{2})
- 从替换模式中捕获第1组(通过$1
引用):两位数\D*
- 0+以外的字符(\d{2})
- 捕获第2组(从替换模式中通过$2
引用):两位数\D*
- 0+以外的字符(\d{4})
- 捕获第3组(通过替换模式中的$3
引用):四位数.*
- 字符串的其余部分。答案 1 :(得分:0)
public String create(@ModelAttribute Person person){
// person here can be instance of Person1 or Person2
...
}
使用此正则表达式,您将获得字符串
的前三个单词或
如果单词之间只有\ s +分隔的空格。拆分时,数组本身就是单词。如果你这样做,前三个将在arr [0],arr [1]和arr [3]中:
^((?:\S+\s+){2}\S+).*
答案 2 :(得分:0)
您可以使用以下正则表达式获取第一部分for /R %%F in (*) do echo ren "%%F" "Suf_%%~nxF"