2012-07-02 58 views
0

我建了一个正则表达式在PHP脚本匹配的句子,它的伟大工程,虽然,它错过了第一句话。这里是PHP,包括正则表达式。正则表达式的句子

preg_match_all('([A-Z][^\.!?]*[\.!?]\s)', '$data', $arr, PREG_OFFSET_CAPTURE); 

用于测试的字符串。

个人Bol.com 84000个客户数据是通过在第三方那里Bol.com它的工作的网站 泄漏访问。 它是SQL注入漏洞。数据 ,根据Bol.com不被滥用。

商店已经影响到客户从拿到一个话题告知本身 明显。它涉及84000个客户 参加了“介绍行动“的热烈欢迎。

客户数据在第三方那里 Bol.com它的工作采取行动的数据库Bol.com主任丹尼尔·罗佩尔斯 相反Tweakers.net说。客户可以的姓名,性别,电子邮件地址和出生 过时的日期; 付款细节不详。

“昨天晚上,我们得知谁 去年参加了营销活动的客户,” Roper说。 “通过机构, 行动已经照顾 访问的数据一段时间。”泄漏会一直在软件 至少在去年夏天。 2月份以来的数据进行加密。 据Macworld大会,它是在工具AMFPHP泄漏。

Bol.com采取行动,该公司被放倒后。 Ropers“外 的线人那里没有在数据,有没有泄露 我们非常感谢线人。”他强调,Bol.com 本身并不黑,但表示,该公司仍然希望把他的 责任。 “对于我们和我们 安全核对表工作的所有公司。因此,我们必须一步 进一步去。” 来源:Tweakers.net

+0

是'“$ data''要匹配字符串? – xdazz

+0

不,我添加字符串测试。 –

+0

@RoelVeldhuizen:这是基因的反弹很难决定什么是,什么是不成句。在格式混乱的文本,我们需要更多的信息来决定是否“shdfsdf.com sdfsj”是一两句话。你可以做的最重要的是调整正则表达式,使其适用于你的输入 - 但不一定与每个输入。 – nhahtdh

回答

0

我会用这个正则表达式匹配的句子:

'.*?([\.!?]+|$)' 

添加更多的调整在这里和那里给出了测试输入一个更好看的输出(仅测试输入 - 难保对于一般的文字)

/[\S].*?(?:[\.!?]+["]?(?=\s)|$)/ 
+0

它与\ S增加。 “*(\ S + \。!?] | $)。?否则就的每个实例相匹配。 –

+0

@RoelVeldhuizen:这是我的意图像'啊......嗯......我不know' – nhahtdh

+0

我看到一句话,我的问题是更多的东西like' 10。000' –