以下のような文字列が合った場合、最後の○○○.html部分だけ削除したいです。
適切な正規表現があればお願いたします。
置換前 /aaa/bbb/ccc.html
置換後 /aaa/bbb/
追記
言語によって正規表現の書き方が違うのを知りませんでした。すみません。。。
使用言語はjavaScriptです。
気になる質問をクリップする
クリップした質問は、後からいつでもMYページで確認できます。
またクリップした質問に回答があった際、通知やメールを受け取ることができます。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
回答5件
0
言語によって正規表現の書き方が違うのを知りませんでした。
正規表現自体は、あまり違いはないです。大きく3種類、基本正規表現(一部のUnix/Linuxコマンド)、拡張正規表現(多くのツール)、Perl拡張正規表現(ここ20年くらいの言語の多く)。これらのどれかをベースにした細かいバリエーションもありますが。
今回だと、「削除したい文字列にマッチする正規表現」は、/[^\/]*\.html$/
で、これはどの正規表現でも同じです。
正規表現は「文字列にマッチする」という機能しかないので、削除するとか、置換するなどは、正規表現の機能ではなくて、言語側の機能になります。
「削除したい」となった途端に、正規表現の世界から、プログラミング言語(やツール)の世界の話になります。なので、「どの言語(ツール)のことなのか?」が必要です。
JavaScript
1var a="/aaa/bbb/ccc.html"; 2var b=a.replace(/[^\/]*\.html$/,"");
投稿2016/10/20 06:50
編集2016/10/20 06:51総合スコア84712
0
ベストアンサー
/aaa/bbb/ccc.html
これは
/aaa/bbb/
こうしたいけど
/aaa/zzz/ccc.html
これはこのまま、と言う事ですか?
その場合は
/(\/aaa\/bbb\/).*\.html$/ ↑これでmatchさせて、↓これに変換 $1
/aaa/zzz/ccc.html
これも
/aaa/zzz/
とするという事であれば
/(.*/)[^\/]*\.html$/ ↑これでmatchさせて、↓これに変換 $1
投稿2016/10/20 06:24
編集2016/10/20 06:29総合スコア5405
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
0
どの言語かわかりませんが
JavaScript
http://qiita.com/hrdaya/items/291276a5a20971592216
Java
http://www.javadrive.jp/regex/replace/index1.html
C#/VB.NET
http://dobon.net/vb/dotnet/string/regexreplace.html
Python
http://uxmilk.jp/8662
ご参考ください。
投稿2016/10/20 06:18
総合スコア2021
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
0
正規表現は言語によって微妙に異なったりしますが。。。Rubyだと
ruby
1'/aaa/bbb/ccc.html'.sub(/[^\/]+\.html/, '') # > "/aaa/bbb/"
ですね。
regexp
1[^\/]+\.html
が最後の ccc.html の部分に match します。
投稿2016/10/20 06:15
編集2016/10/20 06:17総合スコア1728
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
あなたの回答
tips
太字
斜体
打ち消し線
見出し
引用テキストの挿入
コードの挿入
リンクの挿入
リストの挿入
番号リストの挿入
表の挿入
水平線の挿入
プレビュー
質問の解決につながる回答をしましょう。 サンプルコードなど、より具体的な説明があると質問者の理解の助けになります。 また、読む側のことを考えた、分かりやすい文章を心がけましょう。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。