[英]regex pattern needed to replace
我不太擅长正则表达式,所以需要社区的帮助。 任何帮助表示赞赏。 我有一个字符串如下
String str= "accountnumber,10000,accountname,Nachiket,balance,null,age,38"
我需要一个正则表达式模式来替换,10000,或者,Nachiket,或者,null,字符串应该看起来类似
String str= "accountnumber,10000\naccountname,Nachiket\nbalance,null\nage,38"
这是我的要求。 我试过下面的模式
String str=str.replace(",/[^a-z0-9-]/,",',/[^a-z0-9-]//n')
谢谢, 纳奇基特
您似乎正在尝试对accountnumber,10000
和accountname,Nachiket
等值进行分组。在这种情况下,您只需搜索两个单词和两个逗号模式。 像这样的东西: -
(.*?),(.*?),
Regex101 示例 - https://regex101.com/r/dEGs9c/1
这是 JavaScript 实现
let str = "accountnumber,10000,accountname,Nachiket,balance,null,age,38" let pattern = /(.*?),(.*?),/g let output = str.replace(pattern, (match)=> { // match will be => accountnumber,10000, => accountname,Nachiket, etc // use slice to remove the last character (comma) return match.slice(0, -1) + "\n" }) console.log(output)
除了使用替换,您可以匹配除逗号之外的任何字符,然后是匹配逗号的可选部分,然后再匹配除逗号之外的任何字符。
如果不想跨线,可以在否定字符class中使用\n
,或者如果不想匹配空格,可以使用[^,\s]+
[^,\n]+(?:,[^,\n]+)?
const regex = /[^,\n]+(?:,[^,\n]+)?/g; [ "accountnumber,10000,accountname,Nachiket,balance,null,age,38", "test1", "test2,test2", "test3,test3,test3" ].forEach(s => console.log(s.match(regex)));
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.