找到一个以正则表达式结尾的字符串

时间:2012-06-25 02:56:09

标签: regex

我想识别两种字符串:一端是正则表达式的数字(或不是)。

但我无法通过\d+$^\D*\d*$^[a-zA-Z]*[0-9]*$

对其进行分类

有谁能告诉我为什么?以及如何解决这个问题..?

2 个答案:

答案 0 :(得分:0)

如果您使用正则表达式引擎的\d+$方法(而不是\d$方法,那么

search确实可以正常工作(如match中的^\D*\d*$一样)在某些情况下需要整个字符串匹配)。

但是,^[a-zA-Z]*[0-9]*$*都不适合此任务,因为在这两项中,尾随数字都是可选的(+允许零重复,{{1}}需要至少一个)。

答案 1 :(得分:0)

首先你的回答是不完整的,这使得回答很难。你的评论也没有澄清任何内容。

我猜:

使用您的两个表达式^\D*\d*$^[a-zA-Z]*[0-9]*$,您无法验证您要查找的内容,因为量词*也匹配0次出现==>它匹配空字符串。

因此,^\D*\d*$将匹配任何在开头具有非数字的字符串,或空字符串,后跟数字或空字符串直到结束。

意思是,这个表达式会匹配。

  • 空字符串
  • Foobar的
  • Foobar 123
  • 123

但不是

  • 123Fooo

here on Regexr