Regex/PHP在散列和任何非数字之间获取数字?
我有一个文本字符串,其中有几个实例始终是一个哈希,然后是一个数字,有时是标点符号,例如: 文本12321、文本456和文本789;文本0!等等 我需要正则表达式在散列之后,但在任何非数字之前,对所有每个数字变量长度进行预匹配-因此在上面的示例中,我将得到以下数组: “12321”“456”“789”“0” 我试过:Regex/PHP在散列和任何非数字之间获取数字?,php,regex,Php,Regex,我有一个文本字符串,其中有几个实例始终是一个哈希,然后是一个数字,有时是标点符号,例如: 文本12321、文本456和文本789;文本0!等等 我需要正则表达式在散列之后,但在任何非数字之前,对所有每个数字变量长度进行预匹配-因此在上面的示例中,我将得到以下数组: “12321”“456”“789”“0” 我试过: '/[#](.*?)[^0-9]/' 及 但第一个以一种奇怪的方式失败了,第二个只匹配其他实例 我试图在文档中找到自己的方法,但看看如何最好地做到这一点会有很大帮助。谁能帮我省下几
'/[#](.*?)[^0-9]/'
及
但第一个以一种奇怪的方式失败了,第二个只匹配其他实例
我试图在文档中找到自己的方法,但看看如何最好地做到这一点会有很大帮助。谁能帮我省下几个小时的困惑,告诉我正确的正则表达式语法吗?使用这个正则表达式:-
'/#(\d+)/'
您不需要在末尾检查非数字\不管怎样,d+只会得到数字,一旦遇到非数字,它就会停止
请注意,这不是正则表达式中的元字符,因此不需要将其包含在字符类中。使用此正则表达式:-
'/#(\d+)/'
您不需要在末尾检查非数字\不管怎样,d+只会得到数字,一旦遇到非数字,它就会停止
请注意,这不是正则表达式中的元字符,因此不需要将其包含在字符类中。您的第一次尝试列出:
'/[#](.*?)[^0-9]/'
似乎它失败的唯一原因是它消耗了一个额外的字符,如果您有一个像123456这样的字符串,这可能是下一个匹配的开始。非常接近,但这个:
'/#([0-9]+)/'
我相信它应该可以正常工作。您的第一次尝试列出了:
'/[#](.*?)[^0-9]/'
似乎它失败的唯一原因是它消耗了一个额外的字符,如果您有一个像123456这样的字符串,这可能是下一个匹配的开始。非常接近,但这个:
'/#([0-9]+)/'
我相信这应该行得通。这应该行得通“/\d+/”这应该行得通“/\d+/”效果很好!谢谢你向我解释。效果很好!谢谢你向我解释。