我是个新手,谁能帮我用正则表达式或任何其他技术将下面的文本集转换成字典
Bus Number: Departure
,将在所有消息/块中通用
KPN_Sleeper: Bus Number: Departure
Bus code: Kpn-866489 KA-01-7233 Bangalore
AC Sleeper/56 Seats
24 Seats booked
SRS: Bus Number: Departure
Bus code: SRS-5858 KA-31-5985 Bangalore
SAM: Bus Number: Departure
Bus code: SAM-0077 TN-23-0777 Chennai
{0:{
"Bus_name": "KPN_Sleeper",
"Bus code":"Kpn-866489",
"Bus Number": "KA-01-7233",
"Departure": "Bangalore",
"others": "AC Sleeper/56 Seats 24 Seats booked "
},
1:{
"Bus_name": "SRS",
"Bus code":"SRS-5858",
"Bus Number": "KA-31-5985",
"Departure": "Bangalore",
"others": ""
}}
因为我对编码和正则表达式还不熟悉,所以我觉得很难构造
根据您的意见,我认为您可以尝试以下方法:
Regex Demo
示例代码(run here):
说明:
^(.*):\s* (.*)
>;第一个捕获组以获取总线名称\s*
以覆盖空白Bus Number: Departure\s*\n
>;公共汽车号码:出发,然后是空格和换行Bus code:\s*
下一行以总线代码冒号和选项空格开始([^ ]+)\s([^ ]+)\s([^\n]+)[ \t]*
a){}>;总线代码\s>;空白处
b){}>;总线号\s>;空白处
c){}>;离开,它可能有多个单词
d)
[ \t]*
>;它覆盖了起飞后的尾随空间(?:\n|$)
>;它覆盖了换行符或字符串的结尾((?:[^\n]+(?:\n|$))+)?
a){}>;匹配除换行符后跟换行符或字符串结尾以外的任何内容
b)
?:
使其成为非捕获组c)
+
表示可以有多行d)最后的
()
对组中的所有other
行求和e)
?
使整个other
过程成为可选过程相关问题 更多 >
编程相关推荐