如何通过RegEx检查和提取字符串?

时间:2010-10-24 18:06:10

标签: c# .net asp.net regex string

我正在尝试检查一个字符串是否以“@something”结尾并从中提取“某些东西”(如果有的话)。例如,我试图做这样的事情:

string temp = "//something//img/@src"
if (temp ends with @xxx)
{
   string extracted = (get "src");
   ...
}
else
{
   ...
}

我该如何做到这一点?

3 个答案:

答案 0 :(得分:1)

不要使用正则表达式,这是不值得的。

string temp = "//something//img/@src"
int pos = temp.LastIndexOf('@');
if (pos != -1)
{
   string extracted = temp.Substring(pos+1);
   ...
}
else
{
   ...
}

答案 1 :(得分:1)

根据您对我的其他答案的评论,您看起来需要的是:

string temp = "//something//img/@src";
var match = Regex.Match(tmp, @"/@([\w]+)$", RegexOptions.RightToLeft);
if (match.Success)
{
   string extracted = match.Groups[1].Value;
   ...
}
else
{
   ...
}

答案 2 :(得分:0)

尝试以下

var match = Regex.Match(tmp, @".*@(.*)$");
if ( match.Success ) { 
  var extracted = match.Groups[1].Value;
  ...

这里的诀窍是正则表达式中的()。这会将最终匹配分组为未命名的组。然后可以通过索引在Match变量上的Groups成员访问此匹配。这是第一个分组,所以索引是1