基本上我试图创建一个正则表达式模式,让每个单词都以@左开头 例如:
@Server1:IP:Name Just a few words more
模式应该找到“@ Server1:IP:Name”
我创建了一个迄今为止有效的正则表达式模式:
/@\w+/
问题是结肠不再匹配后的一切。如果我使用这个正则表达式,我会得到这个结果,例如:
@Server1
我如何确保它会以@开头并忽略其中的冒号?
答案 0 :(得分:0)
工作正常试试:
@\w\S+
\ w 匹配任何单词字符(等于[a-zA-Z0-9 _])
匹配任何非空白字符
+ 量词 - 在一次和无限次之间匹配,尽可能多次,根据需要回馈(贪婪)
答案 1 :(得分:0)
您可以使用此
@[\w\s:]+
如果您的字符串包含任何字符串(!@#$%^& *()_ +。),您也可以添加它们。
答案 2 :(得分:0)
试试这个var input = "NULL VALUE,25,000-30,000,31,000-32,000,33,000-50,000";
var regex = new Regex(@"(
[A-Z ]+#NULL VALUE
|#OR
(?:
\d{1,3}#A trailling number
(?:,\d{3})*#Followed or not by a thousand separator and 3 digits
)
-#The range separator
(?:\d{1,3}(?:,\d{3})*)#Same thing here
)", RegexOptions.IgnorePatternWhitespace | RegexOptions.IgnoreCase | RegexOptions.Multiline);
var matches = regex.Matches(input);
foreach (Match match in matches)
{
// Do what you want here, I choose to output it.
Console.WriteLine(match.Groups[1]);
}
它为您提供了" @"之间的所有内容。和下一个空间。
@\S+
匹配任何非空格字符。
参考this