正则表达式从任何输入字符串中提取第二个数值,例如从字符串"this23 is 67 test 56 string 45"中获取数字 67。



我遇到了从输入字符串中提取特定数值的问题。

比如说,我有一个字符串"this23 是 67 测试 56 字符串 45",我必须从字符串中获取数字 67,那么我如何使用常规表达式提取它?

我只需要使用正则表达式。

你对此有什么想法吗?

提前感谢,

[^d]*[d]+[^d]+([d]+)

第一个区块是 0 个或多个非数字,后跟 1 个或多个数字,后跟 1 个或多个非数字

,后跟 1 个或多个数字。在括号中,以便您可以使用的任何语言捕获它。

  • 忽略任何非数字
  • 忽略任何数字(第一个数字)
  • 再次忽略任何非数字
  • 捕获第二个数字

[D]*[d]+[D]+([d]+)

试试这个:

^D*d+D+(d+)

我使用 Rubular 对此进行了测试——> 67 在第一组中。

可以使用后视命令(?<=expression)编写正则表达式,但不能在内部使用*或+(至少在Ruby和Perl中是不可能的)。

相关内容

最新更新