2017-04-03 44 views
1

只有在字符串开头的一行中有3个数字的情况下,我必须制定一个正则表达式来选择第一个数字。只有当字符串以连续3个数字开头的字符串时才匹配第一个数字

例子:

012 test 

在这里,我想给0在字符串的开头相匹配。

02 test 

在这里,我不想被正则表达式匹配。

我不知道如何检查字符串,而不使用正则表达式匹配它。这可能吗?

+0

使用[先行](http://www.regular-expressions.info/lookaround.html) –

+1

可以使用:'^(\ d)(?= \ d {2} \ b)中' – anubhava

+1

谢谢@anubhava,工作完美。 –

回答

3

使用positive lookahead assertion检查后面两位数字和start anchor(^)从字符串的开头开始。

/^\d(?=\d{2})/ 


UPDATE:您可以使用 word boundary(\b)避免匹配时,它沿用了后两位数字的任何单词字符。

/^\d(?=\d{2}\b)/ 
+1

谢谢!完美地工作! –

+1

当字符串为'123xyz'时,这也会匹配你应该在预见中添加字边界 – anubhava

+1

@anubhava:yup,你是对的....谢谢,现在更新:) –

相关问题