我所拥有的是一个从上传文件中提取的长字符串,我试图根据关键字拆分此字符串,我知道这里有许多关于拆分和爆炸字符串的答案,但没有一个给我一个线索关于如何解决我的问题,因为我不依赖于空格或特定数量的字符,我唯一的因素是某些关键字的出现,这是我试过的:
$text = readMyFile('filename.txt');
//Now $text contains a very long unformatted text but there are keywords
$keyword = 'ADDRESS:'; //there is only one occurrence of ADDRESS:
$address = explode($keyword, $text);
print_r($address); //$address[1] contains all text after the keyword ADDRESS:
但我还有其他要搜索的关键字,现在我有一个包含两个元素的数组,关键字前后的所有文本,如何反复重复此过程以提取关键字之间的所有文本, 'ADDRESS:'和'JOB TITLE'之间的示例,以便我从原始文档中获取数组的一个元素中的完整地址
答案 0 :(得分:1)
您可以使用preg_match_all()
:
$keywords = ['ADDRESS', 'JOB TITLE'];
$pattern = sprintf('/(?:%s):(.*?)/', join('|', array_map(function($keyword) {
return preg_quote($keyword, '/');
}, $keywords)));
preg_match_all($pattern, $text, $matches);
跳过第一个关键字之前的文字。