删除两个正则表达式特殊字符分隔符之间的文本

时间:2017-01-04 06:15:59

标签: python

s = '^^^@ """@$ raw data &*823ohcneuj^^^ Important Information ^^^raw data^^^ Imp Info' 

在其中,我想删除分隔符^^^和^^^之间的文本。

输出应为“重要信息Imp Info”

2 个答案:

答案 0 :(得分:1)

您可以使用正则表达式执行此操作:

import re
s = '^^^@ """@$ raw data &*823ohcneuj^^^ Important Information ^^^raw data^^^ Imp Info'
important = re.compile(r'\^\^\^.*?\^\^\^').sub('', s)

此正则表达式中的关键元素是:

  1. 逃避^字符,因为它具有特殊含义
  2. 使用.*?
  3. 的不匹配匹配

答案 1 :(得分:1)

def removeText(text):
     carrotCount = 0
     newText = ""
     for char in text: 
           if(char == '^'):
                 # Reset if we have exceeded 2 sets of carrots
                 if(carrotCount == 6):
                      carrotCount = 1
                 else:
                     carrotCount += 1
           # Check if we have reached the first '^^^'
           elif(carrotCount == 3):
                # Ignore everything between the carrots
                if(char != '^'):
                     continue;
                # Add the second set of carrots when we find them
                else:
                     carrotCount += 1
           # Check if we have reached the end of the second ^^^
           # If we have, we have the message
           elif(carrotCount == 6):
                newText += char
      return newText

这将打印"重要信息Imp Info。"