0

我有一个包含大量电子邮件地址的文本文档,这些电子邮件地址是从 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 来做。我会将代码合并到一个表单中以供将来使用。

4

3 回答 3

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只有一点了解。可能有更好的代码。

于 2013-02-06T09:19:17.470 回答
1

怎么样:

LOAD DATA INFILE 'yourFile'
INTO TABLE yourTable
FIELDS TERMINATED BY ';'
LINES TERMINATED BY ';;;\n'
于 2013-02-06T09:14:58.320 回答
0

假设“联系”是指每行的第一个字段(对所有显示的值都表示“联系”),这样的事情将起作用:

cat contacts.txt | awk {'split($2,A,";"); print A[1]"|"$1"|"A[2]}'
于 2013-02-06T09:08:39.187 回答