沃梦达 / 编程问答 / php问题 / 正文

正则表达式以查找特定长度的数字,但其前面或后面除数字以外的任何字符

regex to find number of specific length, but with any character except a number before or after it(正则表达式以查找特定长度的数字,但其前面或后面除数字以外的任何字符)

本文介绍了正则表达式以查找特定长度的数字,但其前面或后面除数字以外的任何字符的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在尝试设计一种正则表达式模式来在字符串中搜索12位数字。该数字在我要查找的数字的前面或后面可以有任意数量的其他字符(但不是数字)。

到目前为止,我已经/([0-9]{12})/正确地找到了12位数字,但它也将匹配字符串中的13位数字。

该模式应与以下字符串的123456789012匹配

  • "rgergiu123456789012ergewrg"
  • "123456789012"
  • "#123456789012"
  • "ergerg ergerwg erwgewrg" Rgergewrgrewg regewrge 123456789012 ergwerg"

它不应与以下字符串匹配:

  • "123456789012000"
  • "egjkrgkergr 123123456789012"

推荐答案

您想要的是四处看看。类似于:

/(?<![0-9])[0-9]{12}(?![0-9])/
如果模式的前面或后面是另一个模式,而不使用该模式,则超前或后视匹配。因此,只有在12位数字的前面或后面没有更多的数字时,此模式才会匹配它们,而不会消耗数字前后的字符。

这篇关于正则表达式以查找特定长度的数字,但其前面或后面除数字以外的任何字符的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!

本文标题为:正则表达式以查找特定长度的数字,但其前面或后面除数字以外的任何字符

基础教程推荐