【问题标题】:regex difference with php whitespace正则表达式与php空格的区别
【发布时间】:2015-07-16 04:29:20
【问题描述】:

我无法让这个正则表达式与 PHP 一起工作,特别是中间的空格,值或单位匹配组将单独匹配。

正则表达式:

/(?<value>\d+\.?\d*)(\p{Z}|\s)(?<unit>(meters|mm))/

要解析的字符串:

Cord Length:1.52 meters

试试http://www.phpliveregex.com/ 不匹配。

http://www.phpliveregex.com/p/bV7

试试https://regex101.com/ 效果很好

编辑:对我来说似乎仍然没有在 phpliveregex.com 上工作

http://www.phpliveregex.com/p/bV7

EDIT2:我已经编辑了要解析的字符串。

【问题讨论】:

  • 它也适用于 phpliveregex:phpliveregex.com/p/bV5
  • phpliveregex 对我来说工作得很好,但你必须删除分隔符(它会添加它们,所以留下它们你会得到重复)。这是 regex101 在粘贴时自动执行的操作。
  • 似乎仍然不适合我,请参阅 OP 中的编辑和链接

标签: php regex


【解决方案1】:

除了上面的cmets,我会修改你的正则表达式如下:

(?<value>\d+(?:\.\d+)?)\h+(?<unit>(?:meters|mm))

【讨论】:

  • 似乎仍然不适合我,请参阅 OP 中的编辑和链接
  • 点击我在原帖中的链接。它有不同的空格字符代码
  • 你改变了空格字符不起作用。
  • 然后使用/(?&lt;value&gt;\d+(?:\.\d+)?)\pZ+(?&lt;unit&gt;(?:meters|mm))/iu
猜你喜欢
  • 2012-02-22
  • 2020-03-24
  • 1970-01-01
  • 2016-03-12
  • 1970-01-01
  • 2016-07-09
  • 2019-05-04
  • 2010-09-12
  • 2016-08-01
相关资源
最近更新 更多