Regex 如何在tcl中基于“”编写正则表达式来拆分文件中的字符串?

Regex 如何在tcl中基于“”编写正则表达式来拆分文件中的字符串?,regex,hashmap,tcl,Regex,Hashmap,Tcl,我有一个1.txt文件,其中数据以下面的格式存储 Name : Chetan Age :31 City : Mumbai 在这里,我想使用TCL使用正则表达式将数据拆分为以下内容 Name : Chetan Age :31 City : Mumbai 然后将这些数据保存在hashmap中,您可以使用下面的方法来解析数据 > set data "Name: Chetan Age:31 City: Mumbai" > regexp {Name(?:[\s:]+)(.*\S+)\s

我有一个1.txt文件,其中数据以下面的格式存储

Name : Chetan Age :31 City : Mumbai
在这里,我想使用TCL使用正则表达式将数据拆分为以下内容

Name : Chetan 
Age :31 
City : Mumbai

然后将这些数据保存在hashmap中,您可以使用下面的方法来解析数据

> set data "Name: Chetan Age:31 City: Mumbai"
> regexp {Name(?:[\s:]+)(.*\S+)\s+Age(?:[\s:]+)(\d+)\s+City(?:[\s:]+)(.*\S+)} $data - name age city

> puts "Name:$name\nAge:$age\nCity:$city"

Name:Chethan
Age:31
City:Mumbai

设置问题的格式,以便更好地理解输入和输出格式。在使用正则表达式时,您需要非常具体地说明您尝试执行的操作。哪一个是输入数据?如果城市是新德里,输入的多单词值会发生什么情况?只有准确地知道真正解析的内容,才能编写正确的正则表达式。您的示例数据足够简单,但最简单的解决方案对于稍微复杂的输入也会失败。因此,我们要求提供更多细节。我是否正确理解姓名、年龄和城市是固定字符串?我想城市名称和名称可以有价值的空间,他们认为,名称,年龄,城市和关键。这些都是固定字符串Chetan,31和Mumbai是键的值,谢谢你的回复。。现在我想分析下面的字符串连接时间:Mon May 23 02:15:60 2017呼叫持续时间:00h00m40s此处连接时间和呼叫持续时间:是键,Mon May 23 02:15:60 2017 00h00m40s分别是值此处键总是常量,当值更改时谢谢您的回复。。现在我想分析以下字符串连接时间:Mon May 23 02:15:60 2017呼叫持续时间:00h00m40s此处连接时间和呼叫持续时间:是键,Mon May 23 02:15:60 2017 00h00m40s分别是值此处键始终是常量,当值更改时,Mon May 23 02:15:60 2017和呼叫持续时间no之间可能会有多个空格固定空格