我正在提取一个字符串,该字符串具有以下格式的信息:
Name: ABC Enterprises
Address: 1234 Somewhere Ln
Service Request: They want something done.
我需要提取数据标签及其关联的数据,因此我成功使用了正则表达式模式(.+):(.+)
(组1中的数据标签和组2中的相关数据)。但是,随着范围的扩大,如果“服务请求”中包含“:”字符,则正则表达式将失败,因为第一个组将捕获从行首到行中最后一个“:”的所有内容。线。有没有办法改变我的正则表达式表达式以创建FIRST':'而不是最后一个的分组中断?谢谢。
答案 0 :(得分:1)
使用reluctant/lazy quantifier:(.+?):(.+)
为获得更好的性能,请使用排他匹配:([^:]+):(.+)
答案 1 :(得分:1)
使用排除类来确保第一组中没有':'
。
([^:]+): (.*)
答案 2 :(得分:1)