我有一个文本文件,该文件在'-'之间有多个字符串,并且我正在尝试打印'-'之间的每个字符串
我已经尝试过此代码,但是它正在跳过值。
function crazy() {
'use strict';
const badboy = {a: 1, a: 2};
return badboy;
}
console.log(crazy().a); // prints 2
我正试图得出这样的结果:
['text1','text2','text3'],'text4']
但是相反,我的代码跳过了值并给了我这个:
['text1','text4']
答案 0 :(得分:1)
尝试使用此简单的正则表达式r'(?<=-)[^-]*(?=-)'
>>> import re
>>> text= """
... -text1-text2-text3
... -text4-
... """
>>> print ([x.strip() for x in re.findall(r'(?<=-)[^-]*(?=-)', text)])
['text1', 'text2', 'text3', 'text4']
答案 1 :(得分:0)
您可以使用
-\s*(.*?)(?=\s*-)
请参见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+个空格,然后-
立即位于当前位置的右侧