日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

python带通配符的字符串匹配_Bash技巧:实例介绍数个参数扩展表达式以处理字符串变量...

發布時間:2023/12/4 python 34 豆豆
生活随笔 收集整理的這篇文章主要介紹了 python带通配符的字符串匹配_Bash技巧:实例介绍数个参数扩展表达式以处理字符串变量... 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

Linux 的 bash shell 提供了多種形式的參數擴展表達式,可以獲取變量自身的值,或者對變量值進行特定處理得到一個新的值,等等。
本篇文章對字符串變量值相關的參數擴展表達式進行匯總說明。

假設在 bash 中定義了 filepath=example/subdir/testfile.txt 這樣一個變量,可以使用下面的參數擴展來獲取一些值:

  • ${filepath}
    獲取 filepath 變量的值。
    例如,echo ${filepath} 命令打印的結果是 example/subdir/testfile.txt。
  • ${#filepath}
    獲取到 filepath 變量值的字符個數,也就是字符串長度。
    例如,echo ${#filepath} 命令打印的結果是 27。
  • ${filepath:4:3}
    從 filepath 變量值開頭的第 4 個字符開始,往后獲取三個字符,得到一個子字符串。
    例如,echo ${filepath:4:3} 命令打印的結果是 ple。
    注意是從開頭的第 0 個字符開始數起。
    這個表達式的格式是 ${parameter:offset:length},offset 指定從哪個位置開始獲取字符,length 指定獲取多少個字符。
  • ${filepath: -3:3}
    從 filepath 變量值倒數的第 3 個字符開始,往后獲取三個字符,得到一個子字符串。
    例如,echo ${filepath: -3:3} 命令打印的結果是 txt。
    負數的 offset 表示倒數的偏移值。冒號和負號之間要加空格。
    注意是從末尾的第 1 個字符開始往前數。
  • ${filepath#*/}
    在 filepath 變量值中,從頭開始匹配所給的 */ 這個模式,刪除第一個匹配的模式,返回后面剩余的內容。
    這里用 * 通配符來匹配開頭的任意字符串。
    例如,echo ${filepath#*/} 打印的結果是 subdir/testfile.txt。
    這個表達式的格式是 ${parameter#word},從 parameter 變量值中刪除最短匹配 word 的前綴部分。
  • ${filepath##*/}
    在 filepath 變量值中,從頭開始匹配所給的 */ 這個模式,一直刪除到最后一個匹配的模式,返回后面剩余的內容。
    這里用 * 通配符來匹配開頭的任意字符串。
    例如,echo ${filepath##*/} 打印的結果是 testfile.txt。
    這個表達式的格式是 ${parameter##word},從 parameter 變量值中刪除最長匹配 word 的前綴部分。
  • ${filepath%/*}
    在 filepath 變量值中,從末尾往前匹配所給的 /* 這個模式,刪除第一個匹配的模式,返回前面剩余的內容。
    這里用 * 通配符來匹配末尾的任意字符串。
    例如,echo ${filepath%/*} 打印的結果是 example/subdir。
    這個表達式的格式是 ${parameter%word},從 parameter 變量值中刪除最短匹配 word 的后綴部分。
  • ${filepath%%/*}
    在 filepath 變量值中,從末尾往前匹配所給的 /* 這個模式,一直刪除到最后一個匹配的模式,返回前面剩余的內容。
    這里用 * 通配符來匹配末尾的任意字符串。
    例如,echo ${filepath%%/*} 打印的結果是 example。
    這個表達式的格式是 ${parameter%%word},從 parameter 變量值中刪除最長匹配 word 的后綴部分。
  • ${filepath/[et]/M}
    在 filepath 變量值中,把第一個匹配的小寫字母 e、或者小寫字母 t,替換成大寫字母 M。
    這里用 [et] 路徑名擴展來匹配小寫字母 e、或者小寫字母 t。
    這個表達式的格式是 ${parameter/pattern/string},把匹配 pattern 的字符串替換成 string 字符串。
    只替換第一個匹配的模式字符串。這個模式字符串可以位于變量值的開頭、中間、以及末尾部分。
    例如,echo ${filepath/[et]/M} 打印的結果是 Mxample/subdir/testfile.txt。
  • ${filepath//[et]/M}
    在 filepath 變量值中,把所有匹配的小寫字母 e、或者小寫字母 t,替換成大寫字母 M。
    這里用 [et] 擴展來匹配小寫字母 e、或者小寫字母 t。
    讓 pattern 模式字符串以字符 ‘/’ 開頭,表示替換所有匹配的字符串。
    例如,echo ${filepath//[et]/M} 打印的結果是 MxamplM/subdir/MMsMfilM.MxM。
  • ${filepath/subdir}
    在 filepath 變量值中,刪除匹配的 subdir 字符串。
    例如,echo ${filepath/subdir} 打印的結果是 example//testfile.txt。
    這個表達式沒有提供替換之后的字符串,表示刪除所匹配的字符串。${parameter#word} 只能刪除匹配的前綴${parameter%word} 只能刪除匹配的后綴。
    ${parameter/pattern} 可以刪除任意位置的匹配字符串,包括中間位置。
  • ${filepath^^}
    把 filepath 變量值的所有字符都轉換為大寫。
    例如,echo ${filepath^^} 打印的結果是 EXAMPLE/SUBDIR/TESTFILE.TXT。
    這個表達式的格式是 ${parameter^^pattern},把 parameter 變量值中匹配 pattern 模式的每一個小寫字母都轉成大寫。
    如果沒有提供 pattern 模式,表示匹配任意一個字符。
  • ${filepath,,}
    把 filepath 變量值的所有字符都轉換為小寫。
    例如,echo ${filepath,,} 打印的結果是 example/subdir/testfile.txt。
    這個表達式的格式是 ${parameter,,pattern},把 parameter 變量值中匹配 pattern 模式的每一個大寫字母都轉成小寫。
    如果沒有提供 pattern 模式,表示匹配任意一個字符。
  • ${filepath^}
    把 filepath 變量值的首字符轉成大寫。
    例如,echo ${filepath^} 打印的結果是 Example/subdir/testfile.txt。
    這個表達式的格式是 ${parameter^pattern},把匹配 pattern 模式的 parameter 變量值首字符轉成大寫。
    如果沒有提供 pattern 模式,表示匹配任意單個字符。
  • ${filepath,}
    把 filepath 變量值的首字符轉成小寫。
    例如,echo ${filepath,} 打印的結果是 example/subdir/testfile.txt。
    這個表達式的格式是 ${parameter,pattern},把匹配 pattern 模式的 parameter 變量值首字符轉成小寫。
    如果沒有提供 pattern 模式,表示匹配任意單個字符。

上面內容匯總說明了多個字符串變量值相關的擴展表達式,方便統一收藏查閱。

關于這些擴展表達式的詳細說明、以及更多的測試例子,可以查看我前面三篇以 “Bash技巧:使用參數擴展” 開頭的文章。

總結

以上是生活随笔為你收集整理的python带通配符的字符串匹配_Bash技巧:实例介绍数个参数扩展表达式以处理字符串变量...的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。