使用正则表达式仅获取特定字符(#)之后的数字

时间:2018-06-29 09:11:43

标签: php regex

我有以下字符串:

 #35+#36+#37+#38+#39+#40+#46+#47+#48+#49+#50+#51

我怎么才能只获得#之后的数字。

又如何获得前面没有#的数字?

1 个答案:

答案 0 :(得分:2)

要匹配以#开头的数字,请使用(?<=#)\d+(正向查找 #,然后是非空数字序列。

要匹配不以#开头的数字,请使用(?<!\d|#)\d+(负向后查找)。 但是这一次“禁止”前面的字符是#或数字。

当然,请将两种模式都与g(全局)选项一起使用。

如果您要处理所有数字是单循环,并且在此范围内 循环检测,数字是否前面有#,可以使用另一个 选项,即(#?)(\d+)

此模式包含2个组:

  • 可选的#
  • 一个数字序列。

然后,处理每个匹配项,从组2中读取数字并检查组1, 是否包含#