Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Regex/PHP在散列和任何非数字之间获取数字?_Php_Regex - Fatal编程技术网

Regex/PHP在散列和任何非数字之间获取数字?

Regex/PHP在散列和任何非数字之间获取数字?,php,regex,Php,Regex,我有一个文本字符串,其中有几个实例始终是一个哈希,然后是一个数字,有时是标点符号,例如: 文本12321、文本456和文本789;文本0!等等 我需要正则表达式在散列之后,但在任何非数字之前,对所有每个数字变量长度进行预匹配-因此在上面的示例中,我将得到以下数组: “12321”“456”“789”“0” 我试过: '/[#](.*?)[^0-9]/' 及 但第一个以一种奇怪的方式失败了,第二个只匹配其他实例 我试图在文档中找到自己的方法,但看看如何最好地做到这一点会有很大帮助。谁能帮我省下几

我有一个文本字符串,其中有几个实例始终是一个哈希,然后是一个数字,有时是标点符号,例如:

文本12321、文本456和文本789;文本0!等等

我需要正则表达式在散列之后,但在任何非数字之前,对所有每个数字变量长度进行预匹配-因此在上面的示例中,我将得到以下数组:

“12321”“456”“789”“0”

我试过:

'/[#](.*?)[^0-9]/'

但第一个以一种奇怪的方式失败了,第二个只匹配其他实例

我试图在文档中找到自己的方法,但看看如何最好地做到这一点会有很大帮助。谁能帮我省下几个小时的困惑,告诉我正确的正则表达式语法吗?

使用这个正则表达式:-

'/#(\d+)/'
您不需要在末尾检查非数字\不管怎样,d+只会得到数字,一旦遇到非数字,它就会停止

请注意,这不是正则表达式中的元字符,因此不需要将其包含在字符类中。

使用此正则表达式:-

'/#(\d+)/'
您不需要在末尾检查非数字\不管怎样,d+只会得到数字,一旦遇到非数字,它就会停止


请注意,这不是正则表达式中的元字符,因此不需要将其包含在字符类中。

您的第一次尝试列出:

'/[#](.*?)[^0-9]/'
似乎它失败的唯一原因是它消耗了一个额外的字符,如果您有一个像123456这样的字符串,这可能是下一个匹配的开始。非常接近,但这个:

'/#([0-9]+)/'

我相信它应该可以正常工作。

您的第一次尝试列出了:

'/[#](.*?)[^0-9]/'
似乎它失败的唯一原因是它消耗了一个额外的字符,如果您有一个像123456这样的字符串,这可能是下一个匹配的开始。非常接近,但这个:

'/#([0-9]+)/'

我相信这应该行得通。

这应该行得通“/\d+/”这应该行得通“/\d+/”效果很好!谢谢你向我解释。效果很好!谢谢你向我解释。