我有以下文字字符串:
IpV4Layer ipV4Layer = packet.Ethernet.IpV4.ExtractLayer();
ipV4Layer.Source = newAddress;
Packet newPacket = PacketBuild.Build(DateTime.Now, packet.Ethernet.ExtractLayer(), ipV4Layer, packet.Ethernet.IpV4.Payload.ExtractLayer());
我需要从中获取两个组(键值对),以便输出仅为:
ipV4Layer.HeaderChecksum = null;
如果双引号存在,则要求使用单个正则表达式来获取双引号中的所有内容。如果没有,请取不带引号的值。 在上面的示例中,36和null是没有引号的那个,它们也需要被捕获。 我已经尝试了很多,但未能这样做。
更新: 我不知道为什么我要为这个问题投票。是的,这是我试图解析的JSON,但有一个原因,我为什么这样做而不使用任何文档解析器。 我应该使用Talend将动态JSON转换为键值对。我的意思是动态是JSON的字段可以变化,因此我没有固定的模式,因此不能使用文档解析器(它需要固定的JSON结构)。我正在设计一个解决方案,使用Normalizer(在逗号上)来解决这个问题,然后使用正则表达式提取将使用双引号的键值对。我自己尝试了很多东西,因为我不是正则表达式的专家,所以我来这里是为了得到输入。 如果您对此有任何更好的解决方案,我将非常乐意接受您的意见。