【问题标题】:Find all numbers within square brackets using REGEX使用 REGEX 查找方括号内的所有数字
【发布时间】:2017-12-09 07:37:06
【问题描述】:

我搜索了一些帖子,但找不到适合我的问题的解决方案。

我想要[] 内的所有数字。

我在regex101 上测试了以下正则表达式:

\\[.\*([0-9]++).*\\] .....    /gU <- Flags

测试字符串:

Test bla bla [us_image_slider ids="6207,6204,6203,6199,6484,6470" nav="thumbs" img_size="us_img_size_2"] some numbers 232323 [img="344"] and [daas 23344 2333]2323 ( hello 233 ) 

我的正则表达式只找到第一个数字,而不是方括号内的其他数字:(

结果必须是: 匹配0 = 6207 匹配1 = 6204 ...

希望你能帮助我,谢谢。

【问题讨论】:

  • 能否请您格式化您的问题,使其更具可读性?
  • 它不匹配其他数字,因为您在第一次匹配后匹配所有 .*。你追求的是积极的前瞻\d+(?=[^][]*\])
  • 上面的例子你有左括号如果你有 [ bla bla 123,456, bla [abg,789] bla 它应该返回 123,456, 789 或只是 789 会发生什么?
  • 问题解决了,非常感谢,我只是想念你的正则表达式;)

标签: php regex


【解决方案1】:

它不匹配其他数字,因为您在第一次匹配后匹配所有 .*

您正在寻找类似于积极前瞻的东西:

\d+(?=[^][]*\])

Live demo

【讨论】:

    猜你喜欢
    • 2010-10-18
    • 1970-01-01
    • 2021-10-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多