在 python 中使用 re 替换字符串前后
replace before and after a string using re in python
我有这样的字符串'approved:rakeshc@IAD.GOOGLE.COM'
我想在“:”之后和“@”之前提取文本
在这种情况下,要提取的测试是 rakeshc
可以使用拆分方法 - 'approved:rakeshc@IAD.GOOGLE.COM'.split(':')[1].split('@')[0]
但我希望使用正则表达式完成此操作。
这是我目前尝试过的方法。
import re
iptext = 'approved:rakeshc@IAD.GOOGLE.COM'
re.sub('^(.*approved:)',"", iptext) --> give everything after ':'
re.sub('(@IAD.GOOGLE.COM)$',"", iptext) --> give everything before'@'
希望在单个表达式中得到结果。表达式将用于仅用中间字符串替换字符串
这是一个正则表达式单行:
inp = "approved:rakeshc@IAD.GOOGLE.COM"
output = re.sub(r'^.*:|@.*$', '', inp)
print(output) # rakeshc
上述方法是从头开始删除所有文本,包括 :
,以及从 @
到结尾删除所有文本。这会留下电子邮件 ID。
使用捕获组将匹配项之间的部分复制到结果中。
result = re.sub(r'.*approved:(.*)@IAD\.GOOGLE\.COM$', r'', iptext)
希望这对你有用:
import re
input_text = "approved:rakeshc@IAD.GOOGLE.COM"
out = re.search(':(.+?)@', input_text)
if out:
found = out.group(1)
print(found)
你可以使用这条线:
re.sub(r'^.*:(\w+)@.*$', r'', iptext)
输出:
rakeshc
我有这样的字符串'approved:rakeshc@IAD.GOOGLE.COM'
我想在“:”之后和“@”之前提取文本 在这种情况下,要提取的测试是 rakeshc
可以使用拆分方法 - 'approved:rakeshc@IAD.GOOGLE.COM'.split(':')[1].split('@')[0]
但我希望使用正则表达式完成此操作。
这是我目前尝试过的方法。
import re
iptext = 'approved:rakeshc@IAD.GOOGLE.COM'
re.sub('^(.*approved:)',"", iptext) --> give everything after ':'
re.sub('(@IAD.GOOGLE.COM)$',"", iptext) --> give everything before'@'
希望在单个表达式中得到结果。表达式将用于仅用中间字符串替换字符串
这是一个正则表达式单行:
inp = "approved:rakeshc@IAD.GOOGLE.COM"
output = re.sub(r'^.*:|@.*$', '', inp)
print(output) # rakeshc
上述方法是从头开始删除所有文本,包括 :
,以及从 @
到结尾删除所有文本。这会留下电子邮件 ID。
使用捕获组将匹配项之间的部分复制到结果中。
result = re.sub(r'.*approved:(.*)@IAD\.GOOGLE\.COM$', r'', iptext)
希望这对你有用:
import re
input_text = "approved:rakeshc@IAD.GOOGLE.COM"
out = re.search(':(.+?)@', input_text)
if out:
found = out.group(1)
print(found)
你可以使用这条线:
re.sub(r'^.*:(\w+)@.*$', r'', iptext)
输出:
rakeshc