我需要获取ID,我有一些街道或道路或广场的名称以及某个地区或地方的名称......所以我需要从字符串中获取id,其中我有word1和word2。
我正在尝试这个:
<?php
$pattern = '~^(?<id>\\S)\\t+[name1qaz]+[\\w\'-]+[\\w\'-]+[name2asd]+[\\w\'-]~mi';
$subject = '1 name1qaz avenue (name2qwe region)
2 name1wsx road (name2asd region)
3 name1edc street (name2zxc region)
4 name1qaz square name2asd place
5 name1wsx avenue (name2qwe region)
7 name1edc street (name2zxc place)
8 name1qaz road name2zxc region
9 name1wsx square (name2asd region)';
$result = preg_match( $pattern, $subject , $matches );
echo $result;
print_r($matches);
?>
结果我收到空数组
答案 0 :(得分:0)
你的正则表达式错了。使用此:
$pattern = '~^(?<id>\d+)\s+name1qaz\s+(?=.*?name2asd\b)~mi';
答案 1 :(得分:0)
$pattern = '~([0-9]+)[ ]?([a-zA-Z0-9]+)[ ]?([a-zA-Z0-9]+)[ ]?\(([a-zA-Z0-9]+)[ ]?([a-zA-Z]+)\)~';
preg_match_all($patterm, $subject, $matches);
print_r($matches);
我有点失去阅读你的模式,所以我写了我要做的事情来匹配你的字符串中的行。我不是100%关于您是否希望将所有信息作为单个值返回,因此我在结果数组中的空格之间包含了所有单词/数字。