Python在字符之间抓取字符串

时间:2015-07-16 02:23:11

标签: python

如果我有一个类似/ 的字符串你好,你是怎么 /,我该如何抓住这一行并使用python脚本删除它。

import sys
import re

i_file = sys.argv[1];

def stripwhite(text):
    lst = text.split('"')
    for i, item in enumerate(lst):
        if not i % 2:
            lst[i] = re.sub("\s+", "", item)
    return '"'.join(lst)

with open(i_file) as i_file_comment_strip:

        i_files_names = i_file_comment_strip.readlines()

        for line in i_files_names:
                with open(line, "w") as i_file_data:
                        i_file_comment = i_file_data.readlines();
                        for line in i_file_comment:
                                i_file_comment_data = i_file_comment.strip()

在i_file_comment中,我有来自i_file_data和i_file_comment的行包含带有“/.../”格式的行。我是否会在行中的每个字符中使用for循环,并用“”?

替换每个字符

2 个答案:

答案 0 :(得分:0)

如果你想删除 / Hello你是怎么/ 你可以使用正则表达式:

import re
x = 'some text /Hello how are you/ some more text'
print (re.sub(r'/.*/','', x))

输出:

some text  some more text

答案 1 :(得分:0)

如果您知道线路中出现了固定字符串,则可以执行

for line in i_file_comment:
    line = line.replace('/Hello how are you/', '')

但是,如果您拥有的是由/分隔的多个字符串出现(即/ foo /,/ bar /),我认为使用简单的正则表达式将会产生影响:

>>> import re
>>> regex = re.compile(r'\/[\w\s]+\/')
>>> s = """
... Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod
... /Hello how are you/ ++ tempor incididunt ut labore et dolore magna aliqua.
... /Hello world/ -- ullamco laboris nisi ut aliquip ex ea commodo
... """
>>> print re.sub(regex, '', s)  # find substrings matching the regex, replace them with '' on string s

Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod
 ++ tempor incididunt ut labore et dolore magna aliqua.
 -- ullamco laboris nisi ut aliquip ex ea commodo

>>>

只需将正则表达式调整为您需要摆脱的内容:)