正则表达式:拆分具有重复结束模式的字符串
Regex: Split String with repeated end pattern
由于我第一次没有清楚地表述问题陈述,因此对字符串进行了少量更新。
我有一个字符串:'( 5m 3s ) John: Hi <br> Hello <br>( 6m 2s ) Jane: Hello<br>'
我正在尝试匹配字符串以将每条消息提取为每条消息 1 行。
1st group: ( 5m 3s ) John: Hi <br> Hello <br>
2nd group: ( 6m 2s ) Jane: Hello<br>
有人可以为此提供有关正则表达式的建议吗?
这是我目前正在尝试使用的,但我无法分辨正则表达式中的最后一个中断:
(.*?).*?:.*?<br>
我接受了,实际的分隔符模式是“<br>
后跟一个左圆括号”。
匹配 "something followed by ..." 的通用方法是使用正向先行构造 ((?=...)
):
\(.*?\).*?:.*?<br>(?=\(|$)
这里我们将 <br>
限制为仅在其后跟 (
或字符串结尾时匹配。
另请注意括号应该被转义;否则他们会定义一个捕获组(或其他一些特殊的正则表达式结构,具体取决于开始后的内容。)
由于我第一次没有清楚地表述问题陈述,因此对字符串进行了少量更新。
我有一个字符串:'( 5m 3s ) John: Hi <br> Hello <br>( 6m 2s ) Jane: Hello<br>'
我正在尝试匹配字符串以将每条消息提取为每条消息 1 行。
1st group: ( 5m 3s ) John: Hi <br> Hello <br>
2nd group: ( 6m 2s ) Jane: Hello<br>
有人可以为此提供有关正则表达式的建议吗? 这是我目前正在尝试使用的,但我无法分辨正则表达式中的最后一个中断:
(.*?).*?:.*?<br>
我接受了,实际的分隔符模式是“<br>
后跟一个左圆括号”。
匹配 "something followed by ..." 的通用方法是使用正向先行构造 ((?=...)
):
\(.*?\).*?:.*?<br>(?=\(|$)
这里我们将 <br>
限制为仅在其后跟 (
或字符串结尾时匹配。
另请注意括号应该被转义;否则他们会定义一个捕获组(或其他一些特殊的正则表达式结构,具体取决于开始后的内容。)