从字符串中提取正则表达式编号

时间:2012-07-09 21:49:08

标签: regex

我正在查看以下字符串是否与其中的数字1匹配

23_13_15_145_34_1_135

23_13_15_145_34_1

1_23_13_15_145_3

我只想完全匹配它,所以第一个例子不能包括13,15或145,只有1。

与起始和结束示例相同,在字符串的开头和结尾处有1。

2 个答案:

答案 0 :(得分:2)

试试这个:

/(^|_)1(_|$)/

它检查1是否紧跟在字符串(^)或_字符的开头之前,并且紧接着是另一个_字符,或字符串的结尾($)。

当然,为每个分组添加?:以避免捕获,如果您关心(并且您的RE引擎支持它):

/(?:^|_)1(?:_|$)/

答案 1 :(得分:0)

以下内容应该有效(使用lookaround):

(?<!\d)1(?!\d)

此正则表达式将匹配单个1字符,但前提是它之前或之后没有任何数字。