-3

我不知道如何用这种格式解析这些数据:

name<space>age<space>city

当名称和城市可以包含多个单词并且可以在用户键入22 yr 或2 yr 时处理

我真的很感谢任何人对此提供的帮助或指导。

stephanie brown 22 AAA BBB

或者

stephanie brown 22 year AAA BBB

或者

stephanie brown 22 yr AAA BBB

输出如下:

Name : Stephanie Brown
Age  : 22
City : AAA BBB
4

2 回答 2

0

尝试这个:-

$string = 'stephanie brown 22 year AAA BBB';//your input string
$patterns = array();
$patterns[0] = '/year/';
$patterns[1] = '/yr/';

$year_removed_string=preg_replace($patterns, "", $string);
$keywords = preg_split("/[\s]+/", $year_removed_string);

print_r($keywords)

这里的名称和城市应该是一个词,或者如果两个词则不以空格分隔。虽然这不是完美的答案,但也可以提供帮助。或者如果输入是这样的,它会起作用:

stephanie_brown  22 year AAA_BBB
于 2013-07-11T09:04:36.240 回答
0

最好的办法是使用空格作为分隔符将输入转换为带有爆炸的数组。

然后使用一个状态来判断你是否解析了姓名、年龄、地址。年龄是数字,因此很容易从名称->年龄状态移动,然后年龄之后的下一个值应该是地址,除非它的值是“年|年|年”。它不会是 100% 完美的,但它会起作用。

于 2013-07-11T08:56:03.563 回答