我正在尝试检查一个字符串是否以“@something”结尾并从中提取“某些东西”(如果有的话)。例如,我试图做这样的事情:
string temp = "//something//img/@src"
if (temp ends with @xxx)
{
string extracted = (get "src");
...
}
else
{
...
}
我该如何做到这一点?
答案 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