【发布时间】:2016-05-10 06:18:59
【问题描述】:
我的问题似乎微不足道,但我似乎无法完全理解我做错了什么。我试图通过使用正则表达式来查找句点来检测句子的结尾。问题是,我只想说,在一个包含两个以上字母的单词之后出现句号,这样我就可以避免误报“St. Nicholas”。
我现在的表达是:
/\w{3,}\./g
但是,这似乎选择了整个单词,而不仅仅是句号。我做错了什么?
编辑:
我期待
"St. Kitts is really cool. Like seriously, sweet."
在“cool”和“sweet”之后返回句点,但不在“St”之后。
编辑 2:
这是在 Javascript 中,因此 (?
【问题讨论】:
-
是的,因为它将匹配长度为
3或 more 的单词。您需要修改匹配条件。 -
(?<=\w{3})\.如果句点前面有 3 个字母,则匹配。 -
不幸的是,我在 Javascript 中执行此操作,无法进行正常的后视操作。
-
\w{3}(?=\.)可用于匹配 3 个字母后跟一个句点。这个条件对你的目的有用吗? Demo -
如果可能的话,我真的只想选择时期。我正在使用它来获取一个字符串,并且只显示前 n 个句子。我通过在每个句子结尾拆分字符串,然后通过替换拆分中丢失的句点将列表中的前 n 个项目连接在一起来做到这一点。
标签: javascript regex lookbehind