我是一个新的编码,谁能帮助我转换下面的文本集使用正则表达式或任何其他技术的字典。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": ""
}}
由于我是编码和正则表达式的新手,我觉得很难构建。
1条答案
按热度按时间fslejnso1#
考虑到你的评论,我认为你可以试试这个:
Regex Demo
示例代码(run here):
说明:
^(.*):\s* (.*)
-->获取总线名称的第一个捕获组。\s*
覆盖空白区域Bus Number: Departure\s*\n
-->公交车号:离开,后跟空格和换行符Bus code:\s*
下一行以Bus Code(总线代码)开头,加上冒号和选项空格([^ ]+)\s([^ ]+)\s([^\n]+)[ \t]*
a)
([^ ]+)
-->总线代码\s-->空格b)
([^ ]+)
-->总线号\s-->空格c)
([^\n]+)
--> Departure,可以有多个单词d)
[ \t]*
-->包括离港后的尾随舱位(?:\n|$)
-->覆盖字符串的换行符或结尾((?:[^\n]+(?:\n|$))+)?
a)
[^\n]+(?:\n|$
-->匹配除换行符后跟换行符或字符串结尾以外的任何内容b)
?:
使其成为非捕获组c)
+
意味着可以有多条线d)最后的
()
对一组中的所有other
行求和e)
?
使得整个other
过程是可选的