用于获取确切数字的正则表达式

时间:2012-08-04 12:34:38

标签: regex numbers

我在字符串中有一些逗号分隔的数字,我想要匹配一个特定的数字。对于示例字符串“18,34,22,9,2,56”,我想匹配数字“2”而不是22中的两个“2”。我怎样才能获得它?

4 个答案:

答案 0 :(得分:1)

使用此正则表达式\b2\b2替换为您的值

答案 1 :(得分:1)

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

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

如果找不到搜索字符串,则该函数返回-1。如果你坚持使用regexp,那么模式可能看起来一样。

答案 2 :(得分: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

                    }
                }

答案 3 :(得分:0)

你可以使用grep

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

并用逗号分隔的数字字符串中的任何数字替换grep正则表达式中的'2'