簡體   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