2014-12-06 126 views
2

我需要一個JavaScript中的RegExp,它匹配除了每個句子的第一個單詞之外的所有內容。例如:正則表達式除了第一個單詞之外的每個單詞

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 2014-12-06 19:40:13

回答

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

3

此正則表達式將返回句子的陣列,而不從第一話:

/\s*\w*\s*([\w\s,;'\"]+[.?!])/gi 
1

作爲僅有正則表達式的解決方案的另一個起點,我在https://regex101.com/r/yO1gL7/2上發佈了一個示例 - 正如您在右側區域「匹配信息」中所看到的,這些組已正確識別(除了尾部標點符號)。但是,它似乎不能在JavaScript中正常工作。

/(?:(?:(?:^|\s+)\w+\s*)((?:\w+\s*)+?)(?=$|[?!.]))+/gm 
+0

我毫不費力就得到它的工作是:http:/ /jsfiddle.net/dooobowp/總是有趣的看看別人如何做事。 – 2014-12-06 21:03:01

相關問題