句子中除第一个单词外的每个单词的正则表达式

4
我需要在JavaScript中使用正则表达式匹配除每个句子的第一个单词以外的所有内容。例如:
This is a super cool sentence.  Immediately following is this sentence.  Super cool story bro.

我需要的是:

**** is a super cool sentence.  *********** following is this sentence.  ***** cool story bro.

我有这个,它恰好相反于我所需要的(匹配每个句子的第一个单词):

(?:^|(?:[.!?]\s))(\w+)

有没有人能帮我反转这个正则表达式,以便我得到每个句子除第一个单词之外的所有内容?


3
把一个任务分解成更小的部分没有问题:
  1. 拆成句子
  2. 拆成单词
  3. 去掉第一个匹配项
  4. 平铺匹配项
- zerkms
3个回答

3
这个正则表达式将返回一个句子数组,其中每个句子都不包含第一个单词:
/\s*\w*\s*([\w\s,;'\"]+[.?!])/gi

1
var sd = "This is a super cool sentence.  Immediately following is this sentence.  Super cool story bro";
    sd = sd.replace(/(([\.\?\!]|^)\s*\b\w+)/gm,"$2");
console.log('Result is: ' + sd);

这将返回一个缺少句子第一个单词的字符串。在您的例子中,似乎您需要标点符号。如果您实际上不需要,请删除$2

1
作为仅使用正则表达式的另一个起点,我在https://regex101.com/r/yO1gL7/2上发布了一个示例。正如您可以在右侧的“匹配信息”区域中看到的那样,组被正确识别(除了尾部标点符号)。但是,在JavaScript中似乎无法正常工作。
/(?:(?:(?:^|\s+)\w+\s*)((?:\w+\s*)+?)(?=$|[?!.]))+/gm

我没有任何问题让它正常工作:http://jsfiddle.net/dooobowp/ 总是很有趣看到别人如何处理事情。 - Regular Jo

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接