猿问

借助正则表达式将对象属性转换为可读文本

我为中国、美国、日本、墨西哥、德国等不同的国家/地区设置了不同的课程。现在,每次在课程上执行操作(例如单击按钮)时,我都尝试创建详细的日志摘要。因此,每次单击按钮时,它都会执行该对象(下面的示例)并将其保存到数据库中。如何将我的对象转换为所需的结果,如下所示?


另外,如果我使用\n移动到下一行,是否会在数据库中占用更多空间然后将其全部写到一行上?是\n相当于写一个完整的线?


目的:


className{Id=StringProperty [value: 2xy], Name=StringProperty [value: Joe], Age=StringProperty [value: twenty], Hair=StringProperty [value: curly], Color=StringProperty [value: brown]}

期望的结果


Id = 2xy,

Name = Joe,

Age = twenty,

Hair = curly,

Color = brown



慕森卡
浏览 163回答 1
1回答

子衿沉夜

这个怎么样:(?:className{|, )(\w+?)=\w+ \[value: (\w+)(?:]}?)Regex101提供的演示结果输出$1 = $2\n替换为:Id = 2xyName = JoeAge = twentyHair = curlyColor = brown描述:(?:className{|, ) 是键名前的非捕获组(\w+?) 抓住关键 $1=\w+ \[value:从字面上匹配键和值之间的描述部分。前任。火柴=StringProperty [value:(\w+) 捕获值 $2(?:]}?)是值后部分的非捕获组。总是以 结尾,]有时以结尾},因此请使用?与0或匹配的引号运算符1。另一种不太严格的方法 ( Regex101 ) 是在空格或大括号{和方括号之间捕获键,方括号]偶尔后跟结尾的大括号}。但是你必须在意className->.*?在开头:.*?(?: |{)(\w+?)=.*? \[value: (\w+?)](?:,|})
随时随地看视频慕课网APP

相关分类

Java
我要回答