如何在python 3中的某个文本之前找到字符串的最短子串
How to find the shortest of substring of string before a certain text in python 3
我想在Python3中的某个文本之前提取字符串的最短子字符串。例如,我有以下字符串。
\n...\n...\n...TEXT
我想提取'TEXT'
之前刚好包含两个\n
的字符串的最短子串。示例文本可能有 \n
的随机数和 \n
.
之间的随机字母
我已经在 Python 3.4
中尝试过,但我得到的结果与原文相同。似乎当我尝试代码时,它发现第一个 '\n' 作为第一个搜索结果,并将其余的 '\n' 视为任何其他文本。
text='\n abcd \n efg \n hij TEXT'
pattern1=re.compile(r'\n.\*?\n.\*?TEXT', re.IGNORECASE)
obj = re.search(pattern1, text)
obj.group(0)
当我尝试我的代码时,我得到的结果是 \n abcd \n efg \n hij TEXT
,与输入完全相同。
我希望结果是
\n efg \n hij TEXT
谁能帮我解决这个问题?
使用负前瞻的正则表达式:
import re
text = '\n abcd \n efg \n hij TEXT'
pattern = re.compile(r'(\n(?!.*\n.*\).*)')
res = re.search(pattern, str(respData))
res.group(0)
使用python方法:
text = '\n abcd \n efg \n hij TEXT'
text[text[:text.rfind("\n")].rfind("\n"):]
我不确定我是否理解问题...
使用简单的拆分文本,meaby 很有用:
text = '\\n abcd \\n efg \\n hij TEXT - the rest of string'
text = text.split('TEXT')[0]
list_part = text.split('\\n ')
print(list_part)
minimal_set = text
for parts in list_part:
if len(parts) is not 0 and len(parts) < len(minimal_set):
minimal_set = parts
print (minimal_set)
我想在Python3中的某个文本之前提取字符串的最短子字符串。例如,我有以下字符串。
\n...\n...\n...TEXT
我想提取'TEXT'
之前刚好包含两个\n
的字符串的最短子串。示例文本可能有 \n
的随机数和 \n
.
我已经在 Python 3.4
中尝试过,但我得到的结果与原文相同。似乎当我尝试代码时,它发现第一个 '\n' 作为第一个搜索结果,并将其余的 '\n' 视为任何其他文本。
text='\n abcd \n efg \n hij TEXT'
pattern1=re.compile(r'\n.\*?\n.\*?TEXT', re.IGNORECASE)
obj = re.search(pattern1, text)
obj.group(0)
当我尝试我的代码时,我得到的结果是 \n abcd \n efg \n hij TEXT
,与输入完全相同。
我希望结果是
\n efg \n hij TEXT
谁能帮我解决这个问题?
使用负前瞻的正则表达式:
import re
text = '\n abcd \n efg \n hij TEXT'
pattern = re.compile(r'(\n(?!.*\n.*\).*)')
res = re.search(pattern, str(respData))
res.group(0)
使用python方法:
text = '\n abcd \n efg \n hij TEXT'
text[text[:text.rfind("\n")].rfind("\n"):]
我不确定我是否理解问题... 使用简单的拆分文本,meaby 很有用:
text = '\\n abcd \\n efg \\n hij TEXT - the rest of string'
text = text.split('TEXT')[0]
list_part = text.split('\\n ')
print(list_part)
minimal_set = text
for parts in list_part:
if len(parts) is not 0 and len(parts) < len(minimal_set):
minimal_set = parts
print (minimal_set)