我有一个像
这样的文字 "SimpleKey1:word1. SimpleKey2: word word word, word word. word word. CompoundKey3 / CompoundKey3: word word word, word. Key3: word. SimpleKey4: word words, words word-word (word 18 word 100 ). CompoundKey4 / CompoundKey4: word word."
我需要解析该字符串以获取键/值映射,如:
SimpleKey1:word1.
SimpleKey2: word word word, word word. word word.
CompoundKey3 / CompoundKey3: word word word, word.
SimpleKey4: word words, words word-word (word 18 word 100 ).
CompoundKey4 / CompoundKey4: word word.
请注意,键可以包含斜杠字符(/),值可以包含特殊字符。
有没有正则表达式呢? 感谢。
答案 0 :(得分:1)
键匹配\w+ *(?:/ *\w+)*
,因此值是:
之后的所有内容,直到下一个键或字符串结尾,因此:
(\w+ *(?:/ *\w+)*):(.*?)(?=\w+ *(?:/ *\w+)*:|$)
键是组1,值是组2(可能有尾随空格)。