Python 如果介于“0”和“0”之间,则打印字符串-&引用;及-&引用;
我有一个文本文件,它在“-”之间有多个字符串,我正在尝试打印“-”之间的每个字符串 我尝试过这段代码,但它跳过了值Python 如果介于“0”和“0”之间,则打印字符串-&引用;及-&引用;,python,regex,Python,Regex,我有一个文本文件,它在“-”之间有多个字符串,我正在尝试打印“-”之间的每个字符串 我尝试过这段代码,但它跳过了值 import re text= """ -text1-text2-text3 -text4- """ result = re.findall(r'-(.*?)-', text) print(result,end="") 我试图得到这样的结果: ['text1'、'text2'、'text3']、'text4'] 但我的代码却
import re
text= """
-text1-text2-text3
-text4-
"""
result = re.findall(r'-(.*?)-', text)
print(result,end="")
我试图得到这样的结果:
['text1'、'text2'、'text3']、'text4']
但我的代码却跳过了值,并给出了以下结果:
['text1','text4']您可以使用
-\s*(.*?)(?=\s*-)
请参阅和:
见:
如果需要跨行匹配,请将re.S
或re.DOTALL
标记添加到re.findall
正则表达式详细信息
-连字符-
-0+空格\s*
-捕获组1:除换行符以外的任何0+字符(.*)
-一个正向前瞻,需要0+个空格,然后紧靠当前位置右侧(?=\s*-)
试试这个简单的正则表达式>代码> R'(很高兴为你工作)。如果我的答案对你有帮助(请参阅),也请考虑一下投票,因为你在达到15个代表点后有权获得投票权。注意,你可能会投票支持所有有帮助的答案。
import re
text= """
-text1-text2-text3
-text4-
"""
result = re.findall(r'-\s*(.*?)(?=\s*-)', text)
print(result) # => ['text1', 'text2', 'text3', 'text4']
>>> import re
>>> text= """
... -text1-text2-text3
... -text4-
... """
>>> print ([x.strip() for x in re.findall(r'(?<=-)[^-]*(?=-)', text)])
['text1', 'text2', 'text3', 'text4']