正则表达式转义('“? - !。\ |)并返回文本中的前五个单词

时间:2013-09-14 16:35:12

标签: php regex

如何从字符串中返回前五个单词

文字 =数据库?不是。采集!信息 - 最好是一些/甚至 (相关信息),最好?举办。 v1.0 lates,tech = tech

pattern = ^(\w+\s+)([^\\]*(?:\\.[^'\\]*)*) - > 返回整个字符串

但是,如果我尝试添加量词{0,5}

pattern = ^(\w+\s+)([^\\]*(?:\\.[^'\\]*)*){0,5} - > 此剂量根本不匹配

我只想返回上述文本中的前5个匹配项或任何其他文字包含上述文字

等字符

1 个答案:

答案 0 :(得分:2)

我会捅它 -

对于Unicode:

 # ^(?:[^\pL\pN]*[\pL\pN](?:[\pL\pN_-]|\pP(?=[\pL\pN\pP_-]))*){1,5}

 ^
 (?:
      [^\pL\pN]* [\pL\pN]
      (?:
           [\pL\pN_-] 
        |  \pP
           (?= [\pL\pN\pP_-] )
      )*
 ){1,5}

对于ASCII:

 # ^(?:[\W_]*[^\W_](?:\w|[[:punct:]_-](?=[\w[:punct:]-]))*){1,5}

 ^
 (?:
      [\W_]* [^\W_]
      (?:
           \w 
        |  [[:punct:]_-]
           (?= [\w[:punct:]-] )
      )*
 ){1,5}