Regex 将多个字符串与正则表达式匹配
`##(聊天室1)收到来自客户端1的连接请求 (cr1)rr1 (聊天室1)接受客户端1。 (CR 1)AC 1 (聊天室0)收到来自客户端2的连接请求。 (CR0)RC 2 (聊天室0)拒绝了客户端2` 上面的图片清楚地描述了我的问题。我正在尝试匹配RR、AC和RC。我不想要广泛的匹配,而是RR、AC或RC的特定匹配 下面是我尝试的正则表达式,它可以工作,但它是一个广泛的匹配,只要找到其中一个字母Regex 将多个字符串与正则表达式匹配,regex,Regex,`##(聊天室1)收到来自客户端1的连接请求 (cr1)rr1 (聊天室1)接受客户端1。 (CR 1)AC 1 (聊天室0)收到来自客户端2的连接请求。 (CR0)RC 2 (聊天室0)拒绝了客户端2` 上面的图片清楚地描述了我的问题。我正在尝试匹配RR、AC和RC。我不想要广泛的匹配,而是RR、AC或RC的特定匹配 下面是我尝试的正则表达式,它可以工作,但它是一个广泛的匹配,只要找到其中一个字母 (##[^\n]*\n)|(\(CR (\d+))\) [AC\RR\RC\] [0-9]+.
(##[^\n]*\n)|(\(CR (\d+))\) [AC\RR\RC\] [0-9]+.
此外,我还试着用引号将每对字母括起来,如下所示
(##[^\n]*\n)|(\(CR (\d+))\) ["AC"\"RR"\"RC"\] [0-9]+.
这仍然是一个广泛的匹配您可以匹配领先的####然后是该行的其余部分,并使用单个捕获组匹配3个备选方案中的一个:
^##.*\n\(CR \d+\) (R[RC]|AC) \d+\.
解释
字符串的开头^
匹配##....\n
、行的其余部分和换行符##
匹配\(CR\d+\)
和空格,1+位和(CR
)
Capturegroup 1(
MatchR[RC]| AC
或RR
或RC
AC
关闭第1组)
匹配空格、1+位和点\d+。
由于模式相似,我们将)空格和组的范围设为2,并再次以空格结束。这还不清楚。你期望什么样的精确匹配?为什么你的模式是这样写的?你想匹配它是什么意思?如果你想在一个组中捕获RR或AC或RC
^\35;.\ n\(CR\d+)(RR\AC\124; RC)\d+。
如果你能用文本替换图片,对读者来说是一件好事,如果他们想修改您的正则表达式或根据您的示例测试正则表达式,则允许他们剪切和粘贴。@Thefourthbird它就像一个符咒,谢谢
\)\s(.{2})\s