在文件var arr = ["abc=0","def=2","ghi=3","jkl=6","mno=9"];
function searchStringInArray (str, strArray) {
for (var j=0; j<strArray.length; j++) {
if (strArray[j].match(str)) return j;
}
return -1;
}
var pos_of_ghi = searchStringInArray("ghi", arr );
var pos_of_mno = searchStringInArray("mno", arr );
if(pos_of_ghi ==-1){
alert("ghi not found")
}
else{
alert("pos_of_ghi="+pos_of_ghi);
}
if(pos_of_mno ==-1){
alert("mno not found")
}
else{
alert("pos_of_mno="+pos_of_mno);
}
中显示:
test.py
...我想以编程方式替换:
#!/usr/bin/env python
import os
import glob
for f in glob.glob('*.txt'):
print f
... with:
glob.glob('*.txt')
使用glob.glob('*.txt')+glob.glob('*.dat')
。
我试过了:
sed
...但是这不会取代字符串。我有一种预感,这与在字符串中使用单引号来替换和/或解释shell本身中的各种引号(bash)有关。出了什么问题?
答案 0 :(得分:2)
您需要在搜索模式中转义所有特殊的正则表达式元字符,例如.
或*
。
您可以在sed
命令中使用双引号。同时使用&
代替,以避免再次重复匹配的文字。
sed "s/glob\.glob('\*\.txt')/&+glob.glob('*.dat')/" test.py
#!/usr/bin/env python
import os
import glob
for f in glob.glob('*.txt')+glob.glob('*.dat'):
print f