簡體   English   中英

使用正則表達式替換匹配字符串的最后一個字符

[英]Replace last character of a matched string using regex

我需要通過替換匹配特定模式的字符串的最后一個字符來對文件中的行進行后處理。

有問題的字符串是:

BRDA:2,1,0,0

我想將最后一位數字從0替換為1.第二位和第三位是可變的,但字符串將始終啟動我想要影響的BRDA:2。

我知道我可以使用正則表達式來匹配整個字符串

/BRDA:2,\d,\d,1

我如何獲得最后一個數字來執行替換?

謝謝

您可以使用捕獲組匹配和捕獲字符串的各個部分,以便稍后可以使用反向引用在替換結果中恢復這些部分。 你需要更換/刪除的東西應該匹配。

所以,使用

 var s = "BRDA:2,1,0,0" s = s.replace(/(BRDA:2,\\d+,\\d+,)\\d+/, "$11") console.log(s) 

如果你需要匹配整個字符串,你還需要用^$包裝模式:

s = s.replace(/^(BRDA:2,\d+,\d+,)\d+$/, "$11")

細節

  • ^ - 字符串錨點的開始
  • (BRDA:2,\\d+,\\d+,) - 捕獲組#1匹配:
    • BRDA:2, - 字面意思是BRDA:2,
    • \\d+ - 1位或更多位數
    • , - 一個逗號
    • \\d+, - 1+位數和逗號
  • \\d+ - 1+位數。

替換 - $11 - 由JS正則表達式引擎解析為$1反向引用保持在第1組和1位數內的值。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM