str1 = 'test1[2291];test2[NOT (Ready or Design)];test3[>=1 And NOT = 5]'
Я хочу выводить строку сверху, как показано ниже:
required_output = ['test1', 'test2', 'test3']
Удаление '[...;'
Используйте модуль re и функцию findall:
import re str1 = 'test1[2291];test2[NOT (Ready or Design)];test3[>=1 And NOT = 5]' re.findall(r'test[0-9]+',str1)
Выход
['test1', 'test2', 'test3']
str1 = 'test1[2291];test2[NOT (Ready or Design)];test3[>=1 And NOT = 5]' output =[] for data in str1.split(';'): # Get index of square bracket index_of_square_bracket = data.find('[') # Get data from 0th index to square_bracket_index data_without_square_bracket = data[0:index_of_square_bracket] output.append(data_without_square_bracket) output
Привет, это один из способов сделать это с помощью Regex
import re test_string = 'test1[2291];test2[NOT (Ready or Design)];test3[>=1 And NOT = 5]' res = re.findall(r'\w+', test_string) a= [] for word in res: if word.startswith("test"): a.append(word) print(a)
Вы можете достичь желаемого результата разными способами, это пример решения, которое вы можете использовать:
str1 = 'test1[2291];test2[NOT (Ready or Design)];test3[>=1 And NOT = 5]' result = [] for value in str1.split(";"): for word in value.split("["): if word.startswith("test"): result.append(word) print(result)