是否有正则表达式可以在文本中找到所有数字序列(\d+
),而不是形成HTML实体的数字序列?看起来我应该同时使用“向前看”和“向后看”,但我无法弄清楚如何。
例如,对于字符串✑ #555 foo 777;
,我只想匹配555
和777
,而不是10001
。
我试过
~(?<!(&#)|\d])\d+(?![\d|;])~
但它似乎过于严格,因为它不会像777;
答案 0 :(得分:0)
答案 1 :(得分:0)
第二天早上我找到了解决方案。
(?<![(&#)\d])\d+|\d+(?!\d|;)
它非常大且可读性差,但它有效。 附:我认为在处理之前解码/隐藏实体然后将它们放回去会容易得多。