
No.5ベストアンサー
- 回答日時:
> 正規表現で、#の使い方を検索してもそれらしい使い方が見つからないので質問しているのですが、
今回は正規表現は全く関係ないです。
${変数//検索文字列/置換文字列}
の検索文字列の部分に書くのは正規表現じゃないです。
もし正規表現だとすると、質問文にお書きの、echo ${file1/.*/.png} だと、.* で文字列全体にマッチするのですが、それを意図して書いたわけでは無いですよね?
「ピリオドの後に任意の文字列」という意図だったのでは?それは正規表現じゃ無いです。
Zshのマニュアルだと、${name//pattern/repl} と書いてありますが、その前の部分で、pattern とは filename generation と同じと書いてあります(the same as that used for filename generation)。日本語版のあるBashのマニュアルだと同じ物が「パス名展開」となっていますが、こちらの方が分かり易いか。多くのサイトで「ワイルドカード」とか「ファイルマッチ」と書いてあったりします。ls -l *.jpg とか書くときの * の機能のことですね。
* が0文字以上の任意の文字列(正規表現の .* と同じ)
? が1文字の任意の文字(正規表現の . と同じ)
[ ] は正規表現とほぼ同じ
など。. は単なる普通の文字です。
man zshexpn の FILENAME GENERATION の節に一覧があり、そこに ## も載っています。
最初の Tacosan さんの回答に、man zshexpn のウェブ上のURLがあります。
14.8.1 Glob Operators
に記載がありました。探しきれてなかったので、正規表現にあるのかと
勘違いしていました。ありがとうございます。
No.4
- 回答日時:
> .[^ ]##は、${変数名##パターン}の変数展開機能で、変数名が.[^ ]で、パターンが無いという理解で良いのでしょうか?
全く違います。
「${変数名##パターン}」と「.[^ ]##」は、全く似てないですが、これが同じに見えるのでしょうか???
> > ${変数//検索文字列/置換文字列} の書式と一緒に使えるのでしょうか?
>
> ${file1//.[^ ]##/.png}
> は、まさにその書式ですけど???
とい文章が理解してもらえないとすると、お手上げです。
${変数//検索文字列/置換文字列} の書式の、
変数:file1
検索文字列:.[^ ]##
置換文字列:.png
なのですが。
No.3
- 回答日時:
「ピリオドの後に、空白以外の文字が1文字以上続く」が
.[^ ]##
に該当するという意味が通じなかったと言うことですか?
と思ったら、
> それって、変数の文字列置換機能の ${変数//検索文字列/置換文字列} の書式と一緒に使えるのでしょうか?
???
${file1//.[^ ]##/.png}
は、まさにその書式ですけど???
${file1//.[^ ]##/.png} が ${変数//検索文字列/置換文字列} に見えないとは思いもしなかったので、その旨もわざわざ書きませんでした。
「ピリオドの後に、空白以外の文字が1文字以上続く」が
.[^ ]##
に該当すると検索文字列だという意味が通じている前提だと、## は「1回以上の繰り返し」だとわかりますよね?javascript:void 0;
No.2
- 回答日時:
.* は「ピリオドの後に任意の文字列(空白でも何でも)」なので、
"dog.jpg cat.mpg" に対しては、".jpg cat.mpg"にマッチします。
その後ろに .* にマッチする文字列は無いので、/ でも // でも同じです。
拡張子が英小字3文字限定なら
echo ${file1//.[a-z][a-z][a-z]/.png}
「ピリオドの後に、空白以外の文字が1文字以上続く」だと、拡張オプションをセットして、
setopt EXTENDED_GLOB
echo ${file1//.[^ ]##/.png}
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- HTML・CSS CSSが効かずどのように指定すれば良いか分からないのでアドバイスお願い致します 2 2023/06/07 12:25
- JavaScript clear機能を失わずにファイルアップロード機能を作成したい 3 2023/06/10 16:12
- その他(ソフトウェア) 画像のファイル形式、拡張子が変わると、性能が変わると思うのですが、ファイル名の「jpg、png、do 8 2022/08/10 13:37
- PHP imageフォルダに、画像をリサイズして保存する時のファイル名を変更したい 1 2023/05/30 11:39
- PHP 共通の処理をまとめる方法がわからないのでアドバイスお願いします。 1 2022/12/19 20:20
- iPhone(アイフォーン) iphoneで撮影した写真、動画を連番のファイル名で保存したい。 1 2022/04/28 02:12
- PHP PHP MySql 画像を取得 1 2022/06/04 14:05
- その他(プログラミング・Web制作) zshの例外処理 1 2022/06/02 16:36
- UNIX・Linux Linuxについて質問です。 以下のような設定をしたMakefileを作成するにはどう記述すればよい 1 2023/02/03 20:10
- その他(プログラミング・Web制作) Leafletで画像をon、offさせる方法について 2 2022/11/01 15:34
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
LinuxでWine使うとどのくらいWi...
-
Core 2 Duo の古いパソコンに最...
-
ubuntu(linux)のシャットダウン...
-
bashでシングルクォート内の変...
-
Linux のシェルスクリプトの強...
-
2TBのUSBメモリを2000円ほどで...
-
CentOSが起動時にフリーズ
-
ubuntu 24 へのCanon 複合機ス...
-
私のパソコンでVirtualBoxは使...
-
[Linux Mint] インストールした...
-
windowsxpと同じくらい軽いLinu...
-
ssh接続しようとしたらエラーメ...
-
VirtualBox ゲストOSにPC内蔵HD...
-
apacheでリバースプロキシを設...
-
ユーザ名usr1でcentos(192.168....
-
ubuntu 22日本語Remixのisoイメ...
-
zorin OS
-
至急です。kubuntu24.04ltsをUS...
-
ubuntuのシャットダウンが進ま...
-
mxlinux 起動時エラーについて
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
LinuxでWine使うとどのくらいWi...
-
Core 2 Duo の古いパソコンに最...
-
Linux のシェルスクリプトの強...
-
ubuntu(linux)のシャットダウン...
-
bashでシングルクォート内の変...
-
ubuntuで デイスク/deb/loopと...
-
apacheでリバースプロキシを設...
-
CentOSが起動時にフリーズ
-
ubuntuのシャットダウンが進ま...
-
ubuntu が起動しない。
-
Windowsのローカルディレクトリ...
-
Ububtuでファイル共有できない...
-
Ubuntu on Xorgのログインについて
-
ログにserver reached MaxReque...
-
「/var/log」内のログの削除の...
-
ubuntu 24 へのCanon 複合機ス...
-
ssl_request_logの必要性について
-
私のパソコンでVirtualBoxは使...
-
WineのRufusでデバイスを検知す...
-
LinuxのノートパソコンでDVDコ...
おすすめ情報
ひとつ教えて下さい。
echo ${file1//.[^ ]##/.png}
で、
.[^ ]の後の##は何を意味するのでしょうか?
変数名とパターンの区切り文字の##なのでしょうか?
それって、変数の文字列置換機能の
${変数//検索文字列/置換文字列}
の書式と一緒に使えるのでしょうか?
理解が悪くて申し訳ないですが、
確認なのですが、
.[^ ]##
は、${変数名##パターン}の変数展開機能で、
変数名が.[^ ]で、パターンが無いという理解で良いのでしょうか?
正規表現で、#の使い方を検索してもそれらしい使い方が見つからないので質問しているのですが、
## は「1回以上の繰り返し」
という意味になるのでしょうか?