我不希望findstr在-和-之间显示包含'btq'的字符串。
例如:ghjgvyu-btq-jklli8j
所以我尝试了以下命令:
from numba import njit
@njit
def get_ratios(arr):
ni, nj, nk = arr.shape[:3]
last_dim = arr.shape[3]
new_arr = np.zeros(shape=(ni, nj, nk, last_dim, last_dim),
dtype=np.float64)
for i in range(ni):
for j in range(nj):
for k in range(nk):
week = arr[i, j, k, :, 3]
for d1 in range(last_dim):
for d2 in range(last_dim):
new_arr[i, j, k, d1, d2] = week[d1] / week[d2]
return new_arr
get_ratios(weeks_5d)
根本不起作用...在不显示^
的情况下不显示任何内容然后我尝试:
array([[[[[1. , 0.49748744, 1.11235955],
[2.01010101, 1. , 2.23595506],
[0.8989899 , 0.44723618, 1. ]],
[[1. , 0.49748744, 1.11235955],
[2.01010101, 1. , 2.23595506],
[0.8989899 , 0.44723618, 1. ]]]]])
相反:无论是否使用^,它始终显示字符串。
仅当我回显btq时,它才能正常工作:
echo ghjgvyu-btq-jklli8j|findstr .*-[^btq]-.*
但这不是我想要的。
答案 0 :(得分:0)
我的解决方案是使用findstr
,/V
和/C
参数运行/R
:
findstr /V /R /C:"-btq-"
/R
是允许使用正则表达式进行搜索的参数。使用参数/C
指定要在一行中搜索的具体字符串/正则表达式,使用/V
指定不包含参数/C
中给出的匹配项的行。>
例如:
@echo off
echo 1 ghjgvyu-btq-jklli8j | findstr /V /R /C:"-btq-"
echo 2 ghjgvyu-bt-jklli8j | findstr /V /R /C:"-btq-"
echo 3 ghjgvyu-b-jklli8j | findstr /V /R /C:"-btq-"
echo 4 ghjgvyu-avc-jklli8j | findstr /V /R /C:"-btq-"
echo 5 abc | findstr /V /R /C:"-btq-"
给我
2 ghjgvyu-bt-jklli8j
3 ghjgvyu-b-jklli8j
4 ghjgvyu-avc-jklli8j
5 abc
您会看到,不应在输出中出现的字符串ghjgvyu-btq-jklli8j
在那里不会出现。