JAVA和JS字符串每4個字符添加空格


一.JS實現方法

'701f3orma43tN5umb6er044567'.replace(/\s/g, '').replace(/(\w{4})(?=\w)/g, '$1 ')

結果: 701f 3orm a43t N5um b6er 0445 67

詳細解釋

replace(/\s/g, '')

\s:匹配任何空白字符,包括空格、制表符、換頁符等等。等價於 [ \f\n\r\t\v]。注意 Unicode 正則表達式會匹配全角空格符。
將空白字符調換為空字符串

replace(/(\w{4})(?=\w)/g, '$1 ')

將字符串前面符合條件的4個字符替換為4個字符和空格

$1的意思

示例

1、引用 $1...$9 ,是通過 RegExp 來的,而不是新建立的RegExp對象名;
2、你創建的正則對象,被括弧括起來的部分,從左到右,依次是$1...$9 ,
這說明,沒有括弧,你也甭想通過,RegExp.$1...$9,拿到任何東西;
下面例子是從javascript幫助文檔摘抄的:

function matchDemo(){
   var s;
   var re = new RegExp("d(b+)(d)","ig");
   var str = "cdbBdbsbdbdz";
   var arr = re.exec(str);
   s = "$1 contains: " + RegExp.$1 + "\n";//$1 contains: bB
   s += "$2 contains: " + RegExp.$2 + "\n";//$2 contains: d
   s += "$3 contains: " + RegExp.$3;//$3 contains: 
   return(s);
}

詳細解釋

var re = new RegExp("d(b+)(d)","ig");
var str = "cdbBdbsbdbdz";
var arr = re.exec(str);
在上面的正則的意思是匹配"db(一次或多次,忽略大小寫)d"的字符串,匹配執行之后,匹配出來的數據是: c dbBd bsb dbd z中的dbBd和dbd

$數字內容是從第一個匹配的字符串中取出的,此時第一個匹配的字符串為"dbBd"

$1對應的是第一個括弧中的(b+),大小寫忽略,所以是 bB
$2對應的是第二個括弧中的(d),d
$3沒有,空。

?=、?<=、?!、?<! 的使用區別

exp1(?=exp2):查找 exp2 前面的 exp1。

(?<=exp2)exp1:查找 exp2 后面的 exp1。

exp1(?!exp2):查找后面不是 exp2 的 exp1。

(?<!exp2)exp1:查找前面不是 exp2 的 exp1。

二.JAVA實現方法

"shjfhjskjfhjskdfhlskdfhls ".trim().replaceAll("(.{4})", "$1 ")

結果:shjf hjsk jfhj skdf hlsk dfhl s

站在巨人肩膀上摘蘋果

https://blog.csdn.net/jafer/article/details/84133639

https://www.runoob.com/regexp/regexp-syntax.html


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM