我有一个文本文件,其中“-”之间有多个字符串,我正在尝试打印“-”之间的每个字符串
我已经尝试过这段代码,但是它正在跳过值。
import re
text= """
-text1-text2-text3
-text4-
"""
result = re.findall(r'-(.*?)-', text)
print(result,end="")
我试图得到这样的结果:
['文本1','文本2','文本3'],'文本4']
但我的代码正在跳过值并给我这个:
['文本1','文本4']
最佳答案
您可以使用
-\s*(.*?)(?=\s*-)
请参阅regex demo和 regex graph :
请参阅Python demo :
import re
text= """
-text1-text2-text3
-text4-
"""
result = re.findall(r'-\s*(.*?)(?=\s*-)', text)
print(result) # => ['text1', 'text2', 'text3', 'text4']
如果需要跨行匹配,请将 re.S
或 re.DOTALL
标志添加到 re.findall
。
正则表达式详细信息
-
- 连字符\s*
- 0+ 个空格(.*?)
- 捕获组 1:除换行符之外的任何 0+ 个字符(?=\s*-)
- 正向前瞻,需要 0+ 空格,然后-
紧邻当前位置的右侧
关于python - 打印介于 "-"和 "-"之间的字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56657229/