繁体   English   中英

需要替换的正则表达式模式

[英]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,10000accountname,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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM