简体   繁体   中英

Python Grabbing String in between characters

If I have a string like / Hello how are you /, how am I supposed to grab this line and delete it using a python script.

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()

In the i_file_comment I have the lines from i_file_data and i_file_comment contains the lines with the "/ ... /" format. Would I use a for loop through each character in the line and replace every one of those characters with a ""?

If you want to remove the /Hello how are you/ you can use regex:

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

Output:

some text  some more text

If you know you have occurences of a fixed string in your lines, you can simply do

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

however, if what you have is multiple occurences of strings delimited by / (ie /foo/, /bar/), I think using a simple regex will sufice:

>>> 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

>>>

just adjust the regex to what you need to get rid of :)

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM