正则表达式从捕获组/解决方法中删除字符

Xtr*_*mer 5 regex

假设我有一个像下面这样的字符串

@ABCD|NN12CT55|GFR

现在我想匹配

@ABCD|N

并将其替换为

@ABCD N

用于匹配的正则表达式 @ABCD\|[^G]

有没有办法删除 | 来自捕获组?

Riz*_*man 5

你可以尝试这个正则表达式

^@[^|]*\K\|
Run Code Online (Sandbox Code Playgroud)

并替换为:

" "
Run Code Online (Sandbox Code Playgroud)

解释:

  1. ^标记字符串的开头
  2. @匹配@符号
  3. [^|]*匹配任何东西,但不匹配管道 |
  4. \K如果在前一点之前找到匹配,则 \K 使当前位置作为起始点,因此前一部分不会被替换
  5. \|匹配管道 --> 该管道将被替换

演示