Regex 正则表达式:将字符串拆分为组

Regex 正则表达式:将字符串拆分为组,regex,Regex,对字符串进行了一些小的更新,因为我第一次没有清楚地表达问题陈述 我有一个字符串:”(5m 3s)约翰:你好你好(6m 2s)简:你好“ 我正在尝试匹配字符串,以将每条消息提取为每行一行 1st group: ( 5m 3s ) John: Hi <br> Hello <br> 2nd group: ( 6m 2s ) Jane: Hello<br> 第一组:(5m 3s)约翰:你好 第二组:(6m 2s)简:你好 有人能给我一些关于正则表达式的建议吗? 这

对字符串进行了一些小的更新,因为我第一次没有清楚地表达问题陈述

我有一个字符串:
”(5m 3s)约翰:你好
你好
(6m 2s)简:你好

我正在尝试匹配字符串,以将每条消息提取为每行一行

1st group: ( 5m 3s ) John: Hi <br> Hello <br>
2nd group: ( 6m 2s ) Jane: Hello<br>
第一组:(5m 3s)约翰:你好 第二组:(6m 2s)简:你好
有人能给我一些关于正则表达式的建议吗? 这是我目前正在尝试使用的,我无法说出正则表达式中的最后一个中断:


(.*?.*?:.*?

此正则表达式模式与您的3个组匹配。第一组是时间(括号内的所有内容),第二组是名称(括号后冒号前),第三组是消息(冒号后)


对于开发正则表达式,您可能可以使用在线正则表达式测试仪,例如。这很简单,每种可能的模式都有解释

括号是特殊的正则表达式字符,您希望将其转义以匹配它们,方法如下:
\(.*)
使用
\(.*)
,您将匹配整个时间部分。 至于John部分,您可以匹配它,以空格(
\W
)开始,以列结尾:
\W.
: 对于hi,从列开始,然后继续:
:.*


只是想知道,您只有那个字符串,或者它是您想要在更大的文本中匹配的字符串?因为在这种情况下,您需要仔细考虑在
Hi
part

之后在哪里停止,每种编程语言都有自己的regex方言。你用哪种语言?请添加适当的标签。定义“部分”。括号是“时间部分”的一部分吗?冒号是“名称部分”的一部分吗?我用的是apex。括号和冒号是标识符,因为上面有多行,我正试图使用正则表达式来处理字符串以匹配模式。括号有着特殊的含义,它们不仅仅与你使用它们的方式相匹配。之前没有明确说明问题。嗨,欢迎来到StackOverflow!您应该看看编辑器中的格式选项——例如,星号用作斜体标记,除非包含在反勾中。另外,
\s
是空白的标记,而不是
\W
(与非字母数字字符匹配)。
\((.*)\)([^:]*):(.*)