gpt4 book ai didi

c# - 键值对的正则表达式

转载 作者:行者123 更新时间:2023-11-30 22:10:23 30 4
gpt4 key购买 nike

我不太擅长正则表达式,我需要从字符串中解析出键/值对。字符串的一个例子是:

Event Name CallingNumber:+15555555555 CallID:12345 CallingName:Doe, John CallingTime:12-26-2013 14:27:41.645497

我正在寻找的结果是这样的:

CallingNumber=+15555555555
CallID=12345
CallingName=Doe, John
CallingTime=12-26-2013 14:27:41.645497

键/值对由空格分隔,但值中允许有空格(例如:Doe、John)。如果这些值被引号或其他东西包围会很好,但它们不是。本质上,我试图匹配一个没有空格后跟冒号的单词,然后是冒号后面的任何字符,直到它到达另一个没有空格后跟冒号的单词。

最佳答案

你的匹配是不可能的,字段用 : 分隔但是你有一个日期 : 在那里,正则表达式不能很容易地区分那些.

不过,这就是我想出的:

(.+?):(.+?)(?=(?:[^\s]+:)|(?:$))

同样,由于日期的原因,这将无法完美运行。

这里有一个 fiddle 来演示:http://www.rexfiddle.net/Wm3NiK0


编辑:如果您的“键”只是字母(不是数字),这样可以避免时间/日期问题,那么这将起作用:

([A-Za-z]+?):(.+?)\s?(?=(?:[A-Za-z]+:)|(?:$))

这是另一个演示这一点的 fiddle :http://www.rexfiddle.net/sGQs7YV

关于c# - 键值对的正则表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20842168/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com