用正则表达式模式提取键值对
本文关键字:键值对 提取 模式 正则表达式 | 更新日期: 2023-09-27 18:09:36
我正试图从这样的字符串中获取键值对
TestKeyAAA: Hello World TestKeyBBB: 987654321 TestKeyCCC: A long sentence with a date time in it 2016-09-29T20:15:11 some more text TestKeyDDD: 123456789
希望收到这样的配对
TestKeyAAA = „Hello World“
TestKeyBBB = „987654321“
TestKeyCCC = „A long sentence with a date time in it 2016-09-29T20:15:11 some more text“
TestKeyDDD = „123456789“
我使用的模式是这个
(.+?):(.+?)(?=(?:[^'s]+:)|(?:$))
它工作得很好,除了关键TestKeyCCC的值。问题是日期中的":"。
键只包含[A-Z],[a-z],. and /
我尝试用下面的模式
([A-Za-z'.]+?):(.+?)(?=(?:[^'s]+:)|(?:$))
但这不起作用。我做错了什么?
我认为在匹配":"
时需要排除数字和空白。([A-Za-z'.]+?):(.+?)(?=(?:[^'s0-9]+:)|(?:$))
这似乎适用于您的测试场景。
(?<key>[A-Za-z'.,/]+?):'s(?<value>.+?)(?='s[A-Za-z'.,/]+?:|$)