我有一个文件,每行都包含字符串:
Format = 1A Rnti = 65535 (SI-RNTI) Format0/Format1A Differentiation Flag = 1 Localised / Distributed VRB Assignment Flag = 0 Resource Block Assignment = 0x00000000 Resource Blocks Detail = (RBstart:0, Lcrbs:1, Ndlrb:50) Modulation and Coding Scheme = 5 Harq Process Number = 16 (Broadcast HARQ Process) New Data Indicator = 0 Redundancy Version = 0 TPC Command = 0 (-1 dB)
我想选择字段名作为键并用“=”分隔以保存相应的值。字段名是 格式、Rnti、Format0/Format1A区分标志、本地化/分布式等。 我尝试如下:
^{pr2}$但是我不能正确地分割字段名(key)和值。是有没有一种方法可以定义所有的键名,然后将字符串中的相应值存储在字典中?在
在解析这个怪物时(在你找到它的作者之后),最好的办法是预先识别所有的字段名,然后捕捉这些字段之间的值。在
最简单的方法是找到行中的每个字段,然后提取它后面的等号和下一个找到的字段之间的值。比如:
使用regex(类似于
(field1|field2|etc)\s*=(.*)(?!field1|field2|etc)
并捕获两个组以获取字段、值元组)可以达到类似的效果,但我不喜欢构造超长regex模式,而且regex引擎也不是为此类任务设计的。在我认为,处理如此混乱的文件的唯一方法是regexp。在
它打印:
^{pr2}$相关问题 更多 >
编程相关推荐