我在Python中具有以下字符串模式:
{{test1 | test2(a) | test3|test4}}
我要检查字符串中是否包含子字符串,这些子字符串在竖线(|)之前/之后没有空格。
因此在此示例中,以下子字符串应被“标记”为无效:
我用正则表达式(?<=\|)(\S*?)(?=\|)
尝试过,但是没有运气
答案 0 :(得分:1)
我认为此正则表达式应该起作用:
(?<=\|)[^{}\s|]+|[^{}\s|]+(?=\|)
有两种情况:
(?<=\|)[^{}\s|]+
用于没有前导空格(|后没有空格)的任何内容
(?<=\|)
向后寻找“ |” [^{}\s|]+
与您想要的文本匹配。 (不是空格,“ |”或方括号的任何字符)[^{}\s|]+(?=\|)
用于没有尾随空格(|前没有空格)的任何内容
[^{}\s|]+
匹配您想要的文本。(?=\|)
会期待一个'|'答案 1 :(得分:0)
也许您可以进行循环检查。
for(i=0, i < str.length, i++){
value1 = str[i];
value2 = str[i+1];
value3 = str[i+2];
if(value2 == '|'){
if(value1 == ' '){
// do what you want do here
}else{}
if(value3 == ' '){
// do what you want do here
}else{}
}
}