我不知道如何用这种格式解析这些数据:
name<space>age<space>city
当名称和城市可以包含多个单词并且可以在用户输入22年或2年时处理
我真的很感激任何人的帮助或指导。
stephanie brown 22 AAA BBB
OR
stephanie brown 22 year AAA BBB
OR
stephanie brown 22 yr AAA BBB
输出如:
Name : Stephanie Brown
Age : 22
City : AAA BBB
答案 0 :(得分:0)
最好的办法是将输入转换为数组,并使用空格作为分隔符进行爆炸。
然后使用状态来确定您是否在名称,年龄,地址中进行解析。年龄是数字,因此很容易从name-&gt; age状态移动,然后age之后的下一个值应该是地址,除非它具有“year | yr | yrs”的值。它不会100%完美,但它会起作用。
答案 1 :(得分: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