2012-08-04 60 views
2

我在一个字符串中有一些以逗号分隔的数字,我想匹配一个特定的数字。对于例子字符串“18,34,22,9,2,56”,我想匹配数字“2”,但不是22中的两个“2”。我怎么能得到这个?获取确切数字的正则表达式

+0

你输入不完整的。所以你只想赶上2. 333呢?还是99?你只想捕捉单个数字的nunmbers或什么? – FailedDev 2012-08-04 12:44:06

回答

1

使用正则表达式\b2\b与你的价值代替2

+0

为什么我没想到呢? – Zorrocaesar 2012-08-04 13:18:27

0

这也许不是最好的方法,但你可以尝试这样的事情

   string NUmbers= "18,22,34,52"; 
       string[] NewNos=NUmbers.Split(','); 

       for(int i=0;i<NewNos.Length;i++) 
       { 
        if(NewNos[i].ToString().Contains("2")) 
        { 
        //do whatever you want 

        } 
       } 
1

可以解决,没有一个正则表达式使用普通的字符串函数这是由大多数编程语言提供的。例如Python中的一个解决方案。在开头和结尾处添加逗号:

s=", 18, 34, 22, 9, 2, 56," 
s.find(', 2,') 

如果找不到搜索字符串,则函数返回-1。如果你坚持正则表达式,模式可能看起来一样。

0

你可以通过任何数量的你在你的逗号搜索使用grep

echo "18, 34, 22, 9, 2, 56" | grep -E -o "^2,| 2,| 2$" 

和grep的正则表达式替代“2”分隔的数字串