所以这有点不同,但请耐心等待。我有一些python函数字符串,没有新的行字符,但适当的缩进。例如(完全组成):
def calc_value(a, b, c): if a>b+c: return a else: return b
我想在每组4+空格之前插入换行符,这样当我在界面中显示代码时,它会显示为可能会读取一个python脚本(而不是一条没有任何意义的长行)。 ..)。我可以用
str.replace(' ', '\n ')
但是这只会替换第一个缩进,如果迭代字符串,带有双缩进的情况会被分成两行。
是否有人有任何创意正则表达式或其他格式化选项?
答案 0 :(得分:1)
以这种方式:
var checkMatch = function(){
if ($clicked.length > 1){
if ($card1 === $card2){
$dis.toggleClass('match');
$matched.push($clicked);
console.log('MATCH');
$clicked = [];
console.log($matched);
console.log($clicked);
}else {
$clicked = [];
$('.card').removeClass('open show');
console.log('NOT A MATCH!')
};
}else{
};
};
答案 1 :(得分:1)
将原始评论转换为答案......
((?:\t| {4})+)
或者(并且更快),您可以使用(\t+| {4,})
,但此时它与answer提供的Robᵩ几乎相同,但添加了制表符。
替换:\n\1
以下代码由regex101在上面的链接中自动生成。直接链接here。
# coding=utf8
# the above tag defines encoding for this document and is for Python 2.x compatibility
import re
regex = r"((?:\t| {4})+)"
test_str = "def calc_value(a, b, c): if a>b+c: return a else: return b"
subst = "\\n\\1"
# You can manually specify the number of replacements by changing the 4th argument
result = re.sub(regex, subst, test_str, 0)
if result:
print (result)
# Note: for Python 2.7 compatibility, use ur"" to prefix the regex and u"" to prefix the test string and substitution.
((?:\t| {4})+)
将以下内容捕获到捕获组1中
(?:\t| {4})+
匹配以下任意一次或多次
\t
匹配制表符{4}
正好匹配空格字符4次答案 2 :(得分:0)
print("def calc_value(a, b, c): if a>b+c: return a else: return b".replace(" "*8,"\n\t\t").replace(" "*4,"\n\t")
输出:
def calc_value(a, b, c):
if a>b+c:
return a
else:
return b