我已經在 Perl 中創建了一個 Shell 腳本,它應該與行匹配Girone : Girone Rosso并只保存Girone Rosso(這是一個變數,所以我想把它寫成這樣[a-zA-Z])。
這是我的嘗試:
pdftotext -layout "$KMVAR_local_PathStr" - \
| perl -wne '
if ( m!^Girone :\h . ! ) {
s!^Girone :\h !!gm;
print;
}
'
uj5u.com熱心網友回復:
無需匹配然后使用替換再次匹配。
perl -ne'print if s/^Girone\h*:\h*//'
但更一般的是,你問的是如何捕捉。這是使用括號完成的。
if ( /^Girone\h*:\h*(.*)/ ) {
# ... do something with $1 ...
}
或者
if ( my ($value) = /^Girone\h*:\h*(.*)/ ) {
# ... do something with $value ...
}
uj5u.com熱心網友回復:
您不必在匹配后替換零件,您可以列印匹配以使用零件將匹配 1 個字符的位置\K清除匹配緩沖區。^Girone :\h \K. .
^Girone :\h \K.
正則運算式演示
我對 perl 不是很有經驗,但舉個例子:
my $str = "Girone : Girone Rosso";
if ($str =~ m/^Girone :\h \K. /) {
print $&;
}
輸出
Girone Rosso
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/351859.html
上一篇:獲取唯一約束失敗:tbl_data.id(Sqlite代碼1555SQLITE_CONSTRAINT_PRIMARYKEY)錯誤在androidstudioroom
