$string = "adf gggg eere value aaaa bbb (10) value
ddttt ggg www (20) value ddttt ggg www dddd (40) ";
preg_match("/(value).*(\(\d+\))/is", $string, $result);
var_dump($result[2]); // outputs 40.
我想要获得第一个值(10).上面的代码输出40有意义,但不是我想要的.字符串模式是:单词“value”,然后是多个任何字符,然后是“(”,整数,“)”.似乎我错过了一些明显的东西…我没有用正则表达式做太多工作,但我相信它可以用某种方式解决?<!value,但到目前为止没有运气. 谢谢你的帮助.
解决方法:
.*是贪婪的,所以它会匹配尽可能多的字符,你想要的.*?这将匹配完成匹配所需的最小字符:
/(value).*?(\(\d+\))/
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。