用于根除电子邮件地址的模式

时间:2013-02-06 09:00:33

标签: php mysql regex database

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

3 个答案:

答案 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]}'