关于句子的正则表达式

时间:2012-07-02 08:32:02

标签: php regex

我构建了一个正则表达式来匹配PHP脚本中的句子,它虽然效果很好,却错过了第一句话。这是包括正则表达式的PHP。

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

用于测试的字符串。

  

Persoonsgegevens van 84.000 Bol.com-klanten waren toegankelijk via een   lek in de site van een externe partij waar Bol.com mee samenwerkte。   Het ging om een kwetsbaarheid voor sql-injectie。 De gegevens zijn   volgens Bol.com niet misbruikt。

     

De webwinkel heeft de getroffen klanten uitzichzelfgeïnformeerd,   blijkt onder meer uit een topic op GoT。 Het gaat om 84.000 klanten die   meededen aan de'kennismakingsactie'Warm Welkom。

     

De klantgegevens stonden in een database van een externe partij waar   Bol.com mee samenwerkte voor de actie,zegt Bol.com-directeur Daniel   Ropers tegenover Tweakers.net。 Van de klanten konden naam,geslacht,   e-mailadres en geboortedatum worden achterhaald; betaalgegevens waren   niet toegankelijk。

     

“我们hebben gisteravondklantengeïnformeerddindeind vorig jaar hebben   meegedaan aan de marketingactie“,zegt Ropers。”通过het bureau dat de   actie heeft verzorgd waren gedurende een bepaalde periode gegevens   toegankelijk。“Het lek zou in ieder geval vorig jaar zomer al in de   软件hebben gezeten。结合februari waren de gegevens versleuteld。   Volgens Webwereld在工具amfphp中获得了很多东西。

     

Bol.com ondernam actie nadat het bedrijf werd getipt。 Ropers:“Buiten   de tipgever is er niemand bij de data geweest;呃是niets uitgelekt。   我们zijn de tipgever zeer dankbaar。“Hij benadrukt dat Bol.com zelf   niet是gehackt,maar zegt ook dat het bedrijf desondanks zijn   verantwoordelijkheid wil nemen。 “Voor alle bedrijven waar we me mee   samenwerken hebben我们的安全检查表。 Daar moeten我们dus een stap   在加恩看来。“   资料来源:Tweakers.net

1 个答案:

答案 0 :(得分:0)

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

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

在这里添加更多调整,为测试输入提供更好看的输出(仅限测试输入 - 不保证一般文本):

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