我有一个包含许多文件的文件夹。我想要的是替换每个文件的第一个匹配字符。例如,我有
aazbc.txt
aaazbxx.txt
aaczbbv.txt
我想替换第一个" b"用" z"结果将是
Dir | Rename-Item -NewName { $_.name -replace "b","a" }
所以只有第一场比赛将被替换为我试过的
private void listaAvvio() {
SQLiteDatabase db = new DatabaseHelper(getActivity()).getReadableDatabase();
final List<Dettaglio1> dettagli1 = new ArrayList<Dettaglio1>();
String tabella_op = "SELECT .....";
Cursor cur = db.rawQuery(tabella_op, null);
while (cur.moveToNext()) {
Dettaglio1 d1 = new Dettaglio1();
d1.id = cur.getString(0);
d1.FIELD1= cur.getString(1);
d1.FIELD2= cur.getString(2);
d1.FIELD3= cur.getString(3);
d1.NUMBER_OF_SINGLE_ROW++;
dettagli1.add(d1);
}
cur.close();
db.close();
...
}
但它取代了所有的&#34; b&#34;在文件名中。
答案 0 :(得分:4)
这样的事情应该有效:
Dir | Rename-Item -NewName { $_.name -replace '^(.*?)b', '$1z' }
诀窍是在匹配模式中包含最短匹配到第一个b((.*?)
),并通过将其替换为自身($1
)将其保留在替换中。