如何检查字符串是否被空格包围

时间:2019-01-29 10:17:30

标签: python regex

我在Python中具有以下字符串模式:

{{test1 | test2(a) | test3|test4}}

我要检查字符串中是否包含子字符串,这些子字符串在竖线(|)之前/之后没有空格。

因此在此示例中,以下子字符串应被“标记”为无效:

  • test3(|前面缺少空格)
  • test4(|后缺少空格)

我用正则表达式(?<=\|)(\S*?)(?=\|)尝试过,但是没有运气

2 个答案:

答案 0 :(得分:1)

我认为此正则表达式应该起作用:

(?<=\|)[^{}\s|]+|[^{}\s|]+(?=\|)

有两种情况:

  • (?<=\|)[^{}\s|]+用于没有前导空格(|后没有空格)的任何内容
    • (?<=\|)向后寻找“ |”
    • [^{}\s|]+与您想要的文本匹配。 (不是空格,“ |”或方括号的任何字符)
  • [^{}\s|]+(?=\|)用于没有尾随空格(|前没有空格)的任何内容
    • [^{}\s|]+匹配您想要的文本。
    • (?=\|)会期待一个'|'

Demo

答案 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{}
    }
}