我想检查一个字符串,然后提取所有以@
开头的变量。我无法找到适当的正则表达式来检查字符串。该字符串可能以@
或"
开头,如果它以"
开头,则它应该有一对匹配"
。正则表达式来检查字符串
实施例1:
"ip : "[email protected]+"."[email protected]+"."[email protected]+"."[email protected]
实施例2:
@nameParameter "@yahoo.com"
由于
我想检查一个字符串,然后提取所有以@
开头的变量。我无法找到适当的正则表达式来检查字符串。该字符串可能以@
或"
开头,如果它以"
开头,则它应该有一对匹配"
。正则表达式来检查字符串
实施例1:
"ip : "[email protected]+"."[email protected]+"."[email protected]+"."[email protected]
实施例2:
@nameParameter "@yahoo.com"
由于
它可能是最容易第一分割每个引用字符串的字符串,则检查未引用的零件@的。例如,所有带引号的字符串可能是:/"[^"]*"/
,在您的字符串上调用Regex.Split将返回非引号部分的字符串数组,然后您可以使用表达式/@\w+/
查找任何@的字符串。
我试图拆分字符串与/”[^“] *”/但它没有工作! System.Text.RegularExpressions.Regex reg = new System.Text.RegularExpressions.Regex(@“/”“[^”“] * /”“”); string [] consts = reg.Split(valueToCheck); – Asha 2009-10-06 14:16:36
你是什么意思,它没有工作?对不起。 – 2009-10-08 15:51:38
这是一个语法错误,我应该改变一些东西,但谢谢你的分裂建议。 – Asha 2009-10-19 12:18:32
试试这个:
string text = "@nameParameter \"@yahoo.com\"";
Regex variables = new Regex(@"(?<!"")@\w+", RegexOptions.Compiled);
foreach (Match match in variables.Matches(text))
{
Console.WriteLine(match.Value);
}
要检查已在您的文章中提供的字符串:
(^( “[^” \ r \ n] “\ S + @ [\ (+)+)+(+)+)|(((^ @ [\ w。] +)|(“@ [\ w。] +”))\ s *)+
这是一种不清楚 - 你想要提取什么?对于你的每个例子,你应该在结果数组中列出你想要的结果 – 2009-10-06 13:20:46
我想他想要所有的@除了在引用字符串内时除外 – 2009-10-06 13:23:15
每当你开始寻找“匹配对”,你可能想要开始考虑除正则表达式之外的东西。并不是说这个表达方式是不可能的;只是它可能最终会比它的价值更麻烦。 – 2009-10-06 13:28:28