使用正则表达式匹配字符串中的第二句,不包括前面的中断标记

时间:2018-04-19 17:26:55

标签: javascript regex string

我有一个HTML代码数组,来自Salesforce查询的字符串。

如果该数组中的字符串包含两个break标记后跟一个句子,我需要正则表达式来匹配句子1之后的所有内容。例如:Dear {!Contact.FirstName}, <br /> <br /> Sentence 1. Sentence 2. <br /> <br /> Sentence 3. Sentence 4. ***Should return: Sentence 2. <br /> <br /> Sentence 3. Sentence 4.

但是,如果字符串包含两个break标记,一个句子和另一组break标记,那么正则表达式应匹配第二组break标记之后的所有内容。例如:Dear {!Contact.FirstName}, <br /> <br /> Sentence 1. <br /> <br /> Sentence 2. <br /> <br /> Sentence 3. Sentence 4. ***Should return: Sentence 2. <br /> <br /> Sentence 3. Sentence 4.

但是,如果字符串包含两个break标记,两个句子和另一组break标记,则正则表达式应匹配句子1之后的所有内容。例如:Dear {!Contact.FirstName}, <br /> <br /> Sentence 1. Sentence 2. <br /> <br /> Sentence 3. Sentence 4. ***Should return: Sentence 2. <br /> <br /> Sentence 3. Sentence 4.

基本上,第一句应该总是被丢弃,第二句后面的所有内容都应该匹配(不包括匹配前的任何中断标记)。我尝试过以下正则表达式,但没有成功: /(?<=\.\s+<br \/> <br \/>)(.*)|(?<=\.\s+[A-Z])(.*)/

1 个答案:

答案 0 :(得分:0)

((?:<br \/>\s*){2})[^\.\n]*\.\s*\1?(.*?)$

这似乎抓住了sentence2~ stringgroup 2 Demo