c# - 如何使正则表达式仅与 = 之前只有一个字母的模式匹配

标签 c# .net

我试图让正则表达式仅在有一个从 A-Z 的字母后跟 = 时匹配,如下所示 A=, a=B=,目前它会拾取 = 之前的任意数量的字母,例如 hem=ac2=.通常 ^[a-zA-Z] 工作得很好,但它不适用于这种情况,因为我使用命名捕获组

String pattern = "FL2 (77) Flashing,77,a=1.875,A=90.0,b=3.625,B=95.0,c=1.375,C=175.0,d=2.5,hem=0.5,16GA-AL,";
var regex = new Regex("(?<label>[a-zA-Z]+)=(?<value>[^,]+)");

我尝试过的其他方法

var regex = new Regex("(?<label>^[a-zA-Z]+)=(?<value>[^,]+)");
var regex = new Regex("(?<label>[^a-zA-Z]+)=(?<value>[^,]+)");

最佳答案

如果您想匹配 l= 但不匹配 word=,则需要一个否定的后向断言。

new Regex("(?<![a-zA-Z])(?<label>[a-zA-Z])=(?<value>[^,]+)")

关于c# - 如何使正则表达式仅与 = 之前只有一个字母的模式匹配,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48118245/

相关文章:

c# - 如何通过命令行运行所有网络测试

c# - 经典的asp类似记录集对象,如何在.net中设计它?

c# - 基于没有键定义的类 mvc5

c# - 使用 ffmpeg 和 C# 创建转换队列

c# - 我们可以在 C# 中在运行时动态交换程序集吗

pythonnet clr 在 jupyter notebook 中无法识别

c# - 无法使用将覆盖 C# 中的默认值的新类构造函数值

c# - 是否应该路由 MVVM 事件?

c# - 使用 RX 查询,如何在每秒 3 秒的窗口内获取哪些记录具有相同状态?

c# - 如何将 int 或 bool 转换为 checkState