regex - 用正则表达式匹配多个字符串字符
问题描述
`## (聊天室 1) 收到来自客户端 1 的连接请求。
(CR 1)RR 1。
(聊天室 1)接受的客户 1。
(CR 1) 交流 1。
(聊天室 0)收到来自客户端 2 的连接请求。
(CR 0)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+ 位和)
(
捕获组 1R[RC]|AC
匹配RR
或RC
或AC
)
关闭组 1\d+.
匹配一个空格、1+ 个数字和一个点
推荐阅读
- git - Ubuntu 20 上的 SSH 密钥不适用于任何 Git Repo
- azure-devops - Azure 管道,多阶段 YAML 管道,在构建服务器上使用相同的工作目录。怎么不腐败
- r - 在带有表格的r中使用“for”循环
- fullcalendar - 单击事件时出现 FullCallendar 刷新页面的问题
- excel - Excel VBA:对于每一行,生成新工作表并将行复制到新工作表
- python - 如何在表格中添加自动编号列?
- powerbi - 为什么我的条件格式在 PowerBI 中无法正常工作?
- mysql - MySQL 通过灵活的列数对未知数量的 ID 行求和和分组
- wix - 使用 Wix 工具集,MajorUpgrade 是否可以设置最低版本
- linux - 如何使用 'sed' 从 txt 读取一行?