我们正在尝试在括号内查找文本并将其替换为单词。在这种情况下,括号内的所有文本,例如(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
答案 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值的反向引用。