我想找到没有包装空格的 Target 字符串,它可以有\s\w\d
之类的任何非+!#
个字符,并且在它们之间有任意数量的空格,并且边缘(左,右)
Target (foo) {bar} [spam] | (foo2)
当前表达式如下所示:
re.search(r"([^\[\]}{()|]+)", " +34s kj-3 R B# (foo) {bar} [spam] | (foo2)")
和group(0)返回:
' +34s kj-3 R B# '
这个expr的问题是我必须编写两个if match:
条件,因为它也只接受空格。所以我必须将其剥离并再次检查。
最近的解决方案是使用与\b
类似的r"\b([^\[\]}{()|]+)\b"
,但它会像+#
一样“剥离”字符:
'34s kj-3 R B'
编辑:目标字符串在以太网上也没有包装空格。
编辑:示例(foo) {bar} [spam] | (foo2)
答案 0 :(得分:0)
使用这个衬垫怎么样:
<强>更新强>
print(re.search(r"^[^\(\)\{\}\[\]\|]+"," +34s kj-3 R B# (foo) {bar} [spam] | (foo2)").group().strip(' \t\n\r'))
说明:
^[^\(\)\{\}\[\]\|]+
找到任何东西直到任何类型的支架
开始strip(' \t\n\r')
将修剪任何前导/尾随
此匹配字符串中的空格/制表符/换行符。