正则表达式搜索并替换括号内的内容

时间:2020-10-05 15:41:17

标签: regex

我们正在尝试在括号内查找文本并将其替换为单词。在这种情况下,括号内的所有文本,例如(R:2379; L:28)等都将替换为(Receipt No.:2379; Ledger No.:28)

下一行有相同的文本不应该被触摸(不知道为什么会出现。这是来自旧的DOS会计应用程序)。

我来到/\([R.]]+\)/g, 'Receipt No.',但这比我想象的要难。该怎么办?

#Ch. No. 209488 #Rt. Date 12-09-1997 #Bank: Citibank (R:2379;L:28)
R:2379;L:28
#Ch. No. 884273 #Dr. Date 10-09-1997 #Ch. Dep. 14-09-1997 #Bank: Citibank (R:2432; L:28)
R:2432; L:28
#Ch. No. 884274 #Dr. Date 10-09-1997 #Ch. Dep. 19-09-1997 #Bank: Citibank (R:2475; L:28)
R:2475; L:28
#Ch. No. 884275 #Dr. Date 10-09-1997 #Ch. Dep. 24-09-1997 #Bank: Citibank (R:2480; L:28)
R:2480; L:28

1 个答案:

答案 0 :(得分:1)

您可以使用

\(R:(\d+);\s*L:(\d+)\)

替换为(Receipt No.:$1; Ledger No.:$2)

请参见regex demo。详细信息:

  • \(R:-(R:文字
  • (\d+)-第1组:一个或多个数字
  • ;-一个;字符
  • \s*-0个或多个空格
  • L:-文字L:文字
  • (\d+)-第2组:一个或多个数字
  • \)-一个)字符。

$1是对组1值的反向引用,而$2是对组2值的反向引用。