[abc] 表示匹配abc这三个字符当中的任意一个;
[^abc] 表示匹配abc这三个字符之外的其它字符;
a|b 表示匹配a或者b;
我来请教大家:
[^a]|[b]
应该会匹配什么呢?
[d]|[^d]
又应该匹配些什么呢?
请大家先不要测试,直接写出答案,然后再把测试之后的结果也写出来。大家分析一下,这是不是一个Bug呢?
其实我这个问题是因为,我想匹配除了“符号”和“空白字符”之外的所有字符,但是同时允许匹配下划线"_"(这个也属于字符),因此我不得不这么写:
[_]|[^\s\p{S}\p{P}]
结果却发现完全不是这么一回事,我觉得这个实际的匹配情况不符合逻辑,好像是一个Bug。当然,上面那一个例子也许应该写成:
[_\S\P{S}\P{P}]
这样更加正确。
(顺便透露一下,上次那个1725字符的表达式,先经过几次缩减变成14xx,然后再经过几次迅速膨胀,现在变成3xxx了,估计还要稍微小胀一点点。这个用于分析词法的正则表达式已经差不多构造好了,虽然似乎没有人用正则表达式匹配来分析词法的(基本上用DFA的比较多),不过我觉得用Regex也不是完全不可能的,就让我来证明一下吧。)
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· .NET周刊【3月第1期 2025-03-02】
· 分享 3 个 .NET 开源的文件压缩处理库,助力快速实现文件压缩解压功能!
· Ollama——大语言模型本地部署的极速利器