如何使用 re.sub 函数用于以下内容?
How to use re.sub function for the following?
我想将下面的行替换为,
ABC+::A1
CDE+:A1A1A1
预期输出:
ABC+::A1
TIM+++2020:11:21:12:51+ZZZ
ABC++ADDEDTIME
CDE+:A1A1A1
我想在上面两行之间添加以下行。请注意,从上面的行来看,A1/A1A1A1 是一个会不断变化的变量,但前三个字母字符保持不变。因此无论冒号(+::)后面提到什么,都必须加上下面两行,
要添加的行
TIM+++2020:11:21:12:51+ZZZ
ABC++ADDEDTIME
我们可以像下面这样很好地利用 re:
import re
regex = r"^(ABC\+::[A-Z0-9]+\n)(?=^CDE\+:[A-Z0-9]+)"
test_str = ("ABC+::A1\n"
"CDE+:A1A1A1")
subst = "\1TIM+++2020:11:21:12:51+ZZZ\nABC++ADDEDTIME\n"
result = re.sub(regex, subst, test_str, 0, re.MULTILINE)
if result:
print(result)
基本上,正则表达式模式匹配 ABC+::ALPHANUM{1, or more} 后跟 CDE+:ALPHANUM{1, or more} 并替换括号中的第一个匹配项,并在后面添加换行符和新字符串它。
我想将下面的行替换为,
ABC+::A1
CDE+:A1A1A1
预期输出:
ABC+::A1
TIM+++2020:11:21:12:51+ZZZ
ABC++ADDEDTIME
CDE+:A1A1A1
我想在上面两行之间添加以下行。请注意,从上面的行来看,A1/A1A1A1 是一个会不断变化的变量,但前三个字母字符保持不变。因此无论冒号(+::)后面提到什么,都必须加上下面两行,
要添加的行
TIM+++2020:11:21:12:51+ZZZ
ABC++ADDEDTIME
我们可以像下面这样很好地利用 re:
import re
regex = r"^(ABC\+::[A-Z0-9]+\n)(?=^CDE\+:[A-Z0-9]+)"
test_str = ("ABC+::A1\n"
"CDE+:A1A1A1")
subst = "\1TIM+++2020:11:21:12:51+ZZZ\nABC++ADDEDTIME\n"
result = re.sub(regex, subst, test_str, 0, re.MULTILINE)
if result:
print(result)
基本上,正则表达式模式匹配 ABC+::ALPHANUM{1, or more} 后跟 CDE+:ALPHANUM{1, or more} 并替换括号中的第一个匹配项,并在后面添加换行符和新字符串它。