我有一个带有大量电子邮件地址的文本文档,我是从pdf转换而来的。 这是一个例子:
name1;someone@awebite1.com;;;
name2;someone@awebite2.com;;;
name3;someone@awebite3.com;;;
name4;someone@awebite4.com;;;
name5;someone@awebite5.com;;;
等...... 600多个联系人
任何人都知道写一个简单的php模式/表达式/正则表达式我可以用来逐个分隔名称和电子邮件,这样我就可以放入数据库了吗?
数据库当然很简单:id |联系|电子邮件
任何帮助都会很高兴!
我忘了提,我想在php中做。我会将代码合并到一个表单中以供将来使用。
答案 0 :(得分:3)
在PHP中,您可以使用explode函数分割字符串..
$parts = explode(';', $inputString);
返回的数组包含由;
分隔的每个部分。
为此,文本文档中的每一行都必须以inputString
的形式给出。因此循环遍历
preg_split('/\\n/',$docContent)
并使用每个元素调用explode
。上面的preg_split
返回一个数组,输入的每一行都作为一个元素。
合并,
$lines = preg_split('/\\n/',$docContent);
foreach($lines as $line) {
$parts = explode(';', $line);
//$parts[0] is name and $parts[1] is email. ignore remaining elements
}
注意:我对php只有一点了解。可能有更好的代码。
答案 1 :(得分:1)
如下:
LOAD DATA INFILE 'yourFile'
INTO TABLE yourTable
FIELDS TERMINATED BY ';'
LINES TERMINATED BY ';;;\n'
答案 2 :(得分:0)
假设通过“联系”表示每行的第一个字段(对所有显示的值表示“联系”),这样的事情将起作用:
cat contacts.txt | awk {'split($2,A,";"); print A[1]"|"$1"|"A[2]}'