我有一个字符串,让我们说:
string s = "This is a test: 1234567";
int i = 1234567;
int j = 234567;
我想找到字符串s中数字1234567的完全匹配。 我尝试使用Regex.IsMatch,但它似乎没有用。
这就是我的尝试:
Regex.IsMatch(s, @"(^|\s)" + i.ToString() + @"(\s|$)") // This should yield true. But it's not.
有什么想法吗?
注意:为了更明确地,数字j
与字符串s
不完全匹配,它只是数字i
,它与字符串s
完全匹配
答案 0 :(得分:1)
编辑: 我错过了j
和i
的重点,参见评价。
一种简单的方法(避免Regex
)是:
bool isMatch = s.Contains(i.ToString());
文档:Contains
method:返回一个值,该值指示指定的子字符串是否出现在此字符串中。
答案 1 :(得分:1)
谢谢大家的快速回复。 @Quantic的解决方案:
sudo /etc/init.d/networking restart
为我工作。
答案 2 :(得分:1)
在这里,我开发了一个小算法来帮助你:
bool Get(string s, int i)
{
bool result = false;
int index = s.IndexOf(i.ToString());
if (index >= 0)
{
if (index == 0)
{
if (i.ToString().Length == s.Length)
{
result = true;
}
else
{
if (char.IsNumber(s.ElementAt(index + i.ToString().Length)))
{
result = false;
}
}
}
else
{
if (char.IsNumber(s.ElementAt(index - 1)))
{
result = false;
}
else
{
result = true;
}
}
}
else
{
result = false;
}
return result;
}
您可能会以下列方式使用此方法:
bool result = Get(s, j);
注意:它太长了,因为它必须处理所有的情况,但似乎它有效,对于丑陋的代码感到抱歉!