我有一个长度为几百个字符且包含
的字符串str= "... a OUTPUT b ..."
其中a
和b
是我需要的OUTPUT
的开头和结尾。
现在,我想在该长字符串中搜索a
部分,并在a
和b
- OUTPUT
之间复制内容(不具备一个固定数量的字符)到一个新的字符串,但我找不到这样做的方法。
为了使事情稍微复杂一点,a OUTPUT b
部分将在该字符串中出现多次,所以我发现它应该只看第一次出现。然后,我将缩短字符串并重复该过程。
很少帮忙?
答案 0 :(得分:0)
我建议使用正则表达式
import re
your_string = "1234aOUTPUTb5678"
output_pattern = ".*a(.*)b"
output_match = re.search(output_pattern,your_string)
output = output_match.group(1)
print output
>>>"OUTPUT"
您需要更换" a"和" b"虽然我不认为你会将它们用作标识符,但它们确实是真实的。
答案 1 :(得分:0)
由于我从@Twitchykid和@ TigerhawkT3获得的输入,我设法解决了这个问题:
import re
string_to_separate = "... a OUTPUT b ... a OUTPUT b ... a OUTPUT b ..."
string_pattern = ".*a (.*) b.*"
sep = "..."
separated_string = string_to_separate(sep)
for i in range(len(string_to_separate)):
output_match = re.search(string_pattern, separated_string[i])
if output.match: #if it exists
output = output_match.group(1)
print output
答案 2 :(得分:0)
正则表达式适用于此
import re
input_string = "a1234b cd a32b blah"
pattern = re.compile("a(.*?)b") #nongreedy so it matches only to the first b, not the last b.
output = pattern.findall(input_string) #this way, I can find all occurrences
print(output)
#['1234', '32']