请帮助我们从以下句子中提取单词:
从那以后,他一直领导着美国以政府为中心的管理工作,从而完成了对该地区的任务。
我们怎能拥有:
He's
led
U.S.
efforts
for
government-centered
management
ever
since
resulting
in
the
missions
to
the
area
非常感谢你。
编辑和评论:
我们感谢所有人的帮助。
答案 0 :(得分:1)
您将很难区分etc.
和area.
(或者,例如,U.S.
和area.
。还要考虑像“他曾在美国做过多次努力”,你不会在一句话结束时把这段时间加倍。你得到的最好的就是接近。
答案 1 :(得分:1)
根据您正在使用的正则表达式风格,您可以使用以下内容:
/\b(\S+[^,.])\b/
作为替代方法,您可以使用Unicode代码点[^,.]
替换\P{P}
。
修改强>
一个更简单的表达式适用于单词级别,但它将匹配U.S
而不是U.S.
:
/\w\S+\w/
答案 2 :(得分:1)
对于U.S.
,您需要在正则表达式中指定该裸字。所以你的正则表达式将是:
\s?(U\.S\.|.*?)[., ]
这对我有用。
答案 3 :(得分:1)
在您的情况下,您可以拆分正则表达式
(?:(?<![A-Z])\.|,)?(\s+|$)
这在空格上分割,可选地以点/逗号开头(但只有在前面没有大写ASCII字母的情况下才在点上)。
它会在像etc.
这样的边缘情况下失败,所以如果你有一个列表,如果正则表达式引擎支持lookbehinds中的变量重复,你可以将它们用于正则表达式。你在用哪一个?
电子。 G。
(?:(?<![A-Z]|\betc|\bca|\bapprox)\.|,)?(\s+|$)
会拆分
He's led U.S. efforts for management, resulting in approx. 3 times the missions to the area, etc.
到
He's
led
U.S.
efforts
for
management
resulting
in
approx.
3
times
the
missions
to
the
area
etc.
<强>解释强>
(?: # match either...
(?<![A-Z] # (as long as not preceded by A-Z
|\betc # or etc
|\bca # or ca
|\bapprox # or approx
) # ...)
\. # a dot
| # or
, # a comma
)? # if present.
(\s+|$) # then either match whitespace or the end of the string.