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