如何从字符串中返回前五个单词
文字 =数据库?不是。采集!信息 - 最好是一些/甚至 (相关信息),最好?举办。 v1.0 lates,tech = tech
pattern = ^(\w+\s+)([^\\]*(?:\\.[^'\\]*)*)
- > 返回整个字符串
但是,如果我尝试添加量词{0,5}
pattern = ^(\w+\s+)([^\\]*(?:\\.[^'\\]*)*){0,5}
- > 此剂量根本不匹配
我只想返回上述文本中的前5个匹配项或任何其他文字包含上述文字
等字符答案 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}