【发布时间】:2017-01-09 20:41:54
【问题描述】:
我正在尝试使用正则表达式过滤字符串,但我对正则表达式不太熟悉,所以我需要一些帮助。我还需要检查字符串是否包含特定的正则表达式部分,例如下面的输入示例:
输入(字符串):
"<value1;127.0.0.1:20000;value2;value3>Lorem ipsum dolor sit amet!"
如果存在则返回这些值:
string val1 = ????; //can't be null or empty, must be at least 3 chars/ints
string val2 = ????; //can be empty string
string val3 = ????; //can be empty string
string ipaddress = ????; // can't be empty
string text = ????; //can be empty string
否则,如果不存在,则仅返回“lorem ipsum...”文本:
string text = ????; //can be empty string
所以首先我需要检查特定部分 是否存在于完整字符串中。 字符串可以没有那部分。
请有人解释一下我该怎么做?
编辑: (请不要判断,我对正则表达式真的很不好) 这是我尝试过的:
private static bool ifContain(string a)
{
return Regex.IsMatch(a, @"([a-zA-Z0-9]*)\;([0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\:[0-9]{5})([a-zA-Z0-9*)\;([a-zA-Z0-9]*)\;([<a-zA-Z0-9]*)");
}
【问题讨论】:
-
谷歌正则表达式规则和正则表达式调试器(然后阅读和实验)如果你不能解决它,回来告诉我们你的正则表达式和字符串。
-
快速评论,可以使用这个功能:
string.IsNullOrWhiteSpace()或者string.IsNullOrEmpty()查看是否为空。 -
好的,我编辑了帖子,我发布了我糟糕的例子。
标签: c# regex string if-statement filtering