Regex 将多个字符串与正则表达式匹配

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]+.

`##(聊天室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]+.

这仍然是一个广泛的匹配

您可以匹配领先的####然后是该行的其余部分,并使用单个捕获组匹配3个备选方案中的一个:

^##.*\n\(CR \d+\) (R[RC]|AC) \d+\.
解释

  • ^
    字符串的开头
  • ##....\n
    匹配
    ##
    、行的其余部分和换行符
  • \(CR\d+\)
    匹配
    (CR
    和空格,1+位和
  • Capturegroup 1
    • R[RC]| AC
      Match
      RR
      RC
      AC
  • 关闭第1组
  • \d+。
    匹配空格、1+位和点


由于模式相似,我们将)空格和组的范围设为2,并再次以空格结束。

这还不清楚。你期望什么样的精确匹配?为什么你的模式是这样写的?你想匹配它是什么意思?如果你想在一个组中捕获RR或AC或RC
^\35;.\ n\(CR\d+)(RR\AC\124; RC)\d+。
如果你能用文本替换图片,对读者来说是一件好事,如果他们想修改您的正则表达式或根据您的示例测试正则表达式,则允许他们剪切和粘贴。@Thefourthbird它就像一个符咒,谢谢
\)\s(.{2})\s