2017-01-23 4 views
0

パス内の任意のドットファイルを再帰的に一致させる正規表現を作成しようとしています。私は以下から始まった:正規表現を使用してドットファイルを再帰的に一致させる

^[.] 

しかし、これはlong/path/here/.dotfileの場合と一致しません。また、.と一致していますが、これは間違っています。正規表現は.と一致し、少なくとも1文字後に必要です。

+0

正確に何が '長い/パス/ここに/ .dotfile'の例で捕獲されることになっていますか? –

+0

"から始まる"関数を使用してフィルタをかけた "あなたがそれを見つけたとき? – squiguy

+0

正規表現のマッチングに使用したツール(およびどの言語?) –

答えて

1

^\/?(?:\w+\/)*(\.\w+)

^は - /
(?:\w+\/)*を先行の可能性 - - 非キャプチャグループのサブディレクトリ・パスの0-infのマッチを見つけるために(例えばlong/path/.../(\.\w+)文字列
\/?の始まりを意味し - グループをキャプチャして、末尾にある任意のファイルを取得します。.

Regex Test

+0

非常に近いですが、 '/ long/path/.dotfile'の大文字小文字は扱いません。 – Justin

+0

@Justinはそれを修正しました! –

+0

それはまさに私が必要なものです。 – Justin

0

私は考えることができる方法は

  1. ^[\.]が一致した2つの正規表現です.
  2. (?<=\/)\.で始まっていないルートディレクトリにあるものは.続い/に一致するすべてのサブディレクトリと一致します。

テストケース:

.foo 
foo.a 
/a/.foo 
/a/foo.a 
/.foo/.asdafsdf 
関連する問題