regex - 如何过滤嵌套正则表达式的子集以匹配组
问题描述
我试图找出一个正则表达式模式来返回除两个特殊字符(;)之间的空格之外的所有字符。谢谢您的帮助。
这是我的正则表达式模式。[^\w](?<Group1>[^;\W].+)
要匹配的示例文本。
Please; help;me
我正在help;me
成为 Group1 匹配器,但我只需要help
.
解决方案
该[^\w](?<Group1>[^;\W].+)
模式匹配一个非单词字符,然后捕获除非单词之外的任何字符和;
(即任何单词字符,除了;
- 这没什么意义,;
可以安全地从类中删除),然后尽可能多地捕获任何 1+ 字符进入第 1 组。基本上,它可以重写为\W(?<Group1>\w.+)
,你会看到它匹配太多而不是你需要的。
您可以使用这样的模式,其中\S*?
匹配除空格以外的任何 0+ 字符,尽可能少:
;\s*(?<Group1>\S*?)\s*;
或者,这种模式的更有效变体:
;\s*(?<Group1>[^;\s]*)\s*;
在该[^;\s]*
模式中,;
是“减去\S
并且[^;\s]*
现在匹配零个或多个字符而不是空格和;
,尽可能多。
查看另一个正则表达式演示。
推荐阅读
- qt - QTableView 未显示 SQLite 数据库中的所有数据
- sql - 当其中一个结果未通过测试时,如何删除与分组 ID 相关的所有结果
- android - 使用 FirestoreRecyclerAdapter 时如何获取 Firestore 文档 ID?
- flutter - Flutters Android Java 源代码在 IntelliJ 中显示错误
- c# - Unity JSON 解析返回 Null
- python - 在嵌套列表中搜索值
- rest - 通过 Postman 发送带有图像的 POST json 对象
- azure - 为什么我的 Cosmos DB 集合会随着时间的推移而减小?
- json - React JS 错误,处理登录表单时无法读取 null 的属性“值”
- r - Dplyr 过滤器,选择输入,并为 Shiny 选择所有条件