【发布时间】:2016-05-16 16:04:17
【问题描述】:
我的值中有很多行,我需要在换行符、返回和开始或结束之间运行 preg_match。
$text = "
ENG CHG NOTE
2A
LTR CHK
AH 2000
YE
NOTE 2
";
例如:
preg_match("/((?P<value>\\d+(.\\d+)*?)\s?(?P<unit>YE))/"
我想确保 preg_match 在上面的例子中只寻找数字和 YE。在此示例中,属于 AH 的 2000 将显示 YE 的错误值。如何在当前正则表达式周围包含 \r\n 和开头或结尾?
【问题讨论】:
-
"/((?P<value>\\d+(.\\d+)*\s*(?P<unit>YE))/" -
您是否希望它仅在整行匹配时才匹配?
-
您能指定预期的输出吗?如果你只想匹配同一行的
YE后面的数字,则需要将\s替换为\h,'~((?P<value>\d+(?:\.\d+)*?)\h?(?P<unit>YE))~' -
您在寻找
<digits> YE吗?如果是这样,请使用水平空格\h*YE而不是\sYE
标签: php regex preg-match