正規表現は使用できますが、正しい正規表現を見つけることはできません。これを行う組み込み関数もありますか?UNIXの絶対パスとどのように一致させ、それをperlで抽出するのですか?
答えて
:
bmake: stopped in /bb/cc/xx/yy/zz/aa
この正規表現は、パス名を引きます:
m%\s(/.*)%
それは何が続くスラッシュに続く空白文字を探します。あなたは、パス名に空白がない場合は、より制限を使用することができます。
m%\s(/\S*)%
あなたは確信している場合は、必ず名前を一つ以上のパスコンポーネントがあるでしょう、あなたが追加することができますその他の制限:
m%\s(/\S+/\S*)%
これが続きます。パス内で何が有効であるかを知るほど、ファイル名だけを照合する可能性が高くなります。ただし、Unixのファイル名には、/
(パス名のセクション間の区切り文字なので)とNULバイトの\0
以外の文字を含めることができます。他のすべて - 改行、タブ、コントロールなど - は公正なゲームであり、ファイル名の一部である可能性があります。慈悲深く、それらの大部分は通常ファイル名には存在しません。
相対パス名は、絶対パス名よりもさらに困難であることに注意してください。
/(.+/)*.*
このパターンを使用してください。開始時にスラッシュ、その後にディレクトリ(存在しない可能性があります)、最後にファイル名またはディレクトリ名(これはあまりありません)。実際にはこれはスラッシュで始まるすべてのものと一致しますが、unixのパスには\0
以外のすべてを含めることができるので問題ありません。
perlでこれを正しく行う必要がありますか? $ line =〜m/regex/?? –
はい。これを参照してくださいhttp://www.troubleshooters.com/codecorn/littperl/perlreg.htm – shift66
if($ line =〜/[/](./[/])*.*/)、これは正しいですか? ? –
代わりにFile::Specコアモジュールを使用することをお勧めします。与えられたものが絶対パスであるかどうかを確認する必要がある場合は、file_name_is_absolute()
を使用してください。相対パスを絶対パスに変換する必要がある場合は、rel2abs()
を使用すると、パターンが表示されます。 )より簡単で読みやすい方法です。考える
- 1. Perlプログラムの絶対パスを相対パスから取得するにはどうすればよいですか?
- 2. 絶対パスからの相対パスの抽出
- 3. 絶対パスと絶対パスの比較
- 4. IDはどのように一致させるのですか?
- 5. 再帰的に一致する引数の絶対パスを返すには? (BASH)
- 6. IPv6アドレスとPerl正規表現をどのように一致させることができますか?
- 7. Perlを使用してパスからファイル名を抽出するにはどうすればよいですか?
- 8. Perlを使って絶対パスを相対パスに変換するにはどうすればよいですか?
- 9. メーラーのアセットパイプラインでスタイルシートの絶対パスを取得するにはどうすればよいですか?
- 10. 絶対パスのMkdir()絶対パスでのMkdir()
- 11. Perlを使ってロシア語のUnicodeテキストをどのように一致させるのですか?
- 12. VBAで特定のパスが相対パスか絶対パスかを確認するにはどうすればよいですか?
- 13. パスの一部を置換/抽出するにはどうすればよいですか?
- 14. アセットから特定のファイルの絶対パスを調べるにはどうすればよいですか?
- 15. Actionscriptでswfファイルの絶対パスを取得するにはどうすればよいですか?
- 16. Rails 3でリソースの絶対パスを取得するにはどうすればよいですか?
- 17. C#の文字列に対してselectステートメントのレコードをどのように一致させるのですか?
- 18. Androidの「assets」ディレクトリの絶対パスを取得するにはどうすればよいですか?
- 19. 現在のスクリプト(マルチOSソリューション)の絶対パスを取得するにはどうすればよいですか?
- 20. ファイル名のコマンドライン引数の絶対パスを取得するにはどうすればよいですか?
- 21. パターンに一致する部分文字列を抽出するにはどうすればよいですか?
- 22. 親の高さを子要素の相対位置と絶対位置に一致させる
- 23. 絶対パスはどこから始まるのですか?
- 24. grepとの一意の一致の数を出力するにはどうすればよいですか?
- 25. ファイルパスの相対パスを絶対パスからどのように見つけるか?
- 26. ホームディレクトリから絶対パスでヘッダファイルをどのようにインクルードするのですか?
- 27. perlと正規表現でパスを抽出する
- 28. GrailsRootLoaderで絶対パスでリソースを解決するにはどうすればよいですか?
- 29. Perlで重複する2つのパターンを一致させる
- 30. 絶対パスでエイリアスをすばやく作成するにはどうすればよいですか?
あなたが望むものをもう少し明確に説明できますか?まったく一致して抽出したいものは何ですか?あなたは一致させたい、そして一致させたくない、そしてあなたが後にしている出力の例をいくつか与えることができますか? –
特別な制限はありませんが、そうすることはできません。最新の* nixパスには '\ 0'を除く任意の文字を含めることができます。意味は、あなたが望むならば、文のようなパスを持つことができます。あなたが本当に行くことができるのは、絶対パス名のための唯一のことです。 – cHao
"bmake:/ bb/cc/xx/yy/zz/aa"で停止しました。/bb/cc/xx/yy/zz/aa –