この正規表現は何をしますか?ファイル名を置き換えることがわかります(拡張子ではありません)この正規表現はどのように機能し、5回だけ繰り返すのですか?
Regex r = new Regex("(?<!\\.[0-9a-z]*)[0-9]");
return r.Replace(sz, "#");
5回だけ繰り返すにはどうすればいいですか? "1111111111.000"から "11111 #####。000"に変換しますか?
この正規表現は何をしますか?ファイル名を置き換えることがわかります(拡張子ではありません)この正規表現はどのように機能し、5回だけ繰り返すのですか?
Regex r = new Regex("(?<!\\.[0-9a-z]*)[0-9]");
return r.Replace(sz, "#");
5回だけ繰り返すにはどうすればいいですか? "1111111111.000"から "11111 #####。000"に変換しますか?
私は」haventはこれを試みたが、はを作品、それをを試してみました:どのように代わりに肯定先読みを使用するための一般的なパターンを変更することについては?そうすれば、それが動作するはずです:
[0-9a-z](?=[0-9a-z]{0,4}\.)
は基本的に、これは4つのまでの他の英数字とピリオド任意の(英数字)文字を検索します。これは、ピリオドの前の最後の5文字を連続してマッチさせることができます。それはひどく非効率的ですが、可変幅の先読みパターンを許可するエンジンでのみ機能します。
.NETで動作します。 –
閉じ括弧の後のアスタリスクを "{5}
"(引用符なし)に変更してください。これは正規表現環境のフィーチャセットに少し依存しますが、これは一般的な構文です。
それはそれを壊す(extは今###になる)。 –
正規表現は、先行しないドット(0〜9)または0〜9またはa〜zのいずれかの数字と一致します。
リプレースラインは、複数の置換を担当します。だからあなたはextra parameter countを持つReplaceメソッドを使いたいと思っています。
ので、コードは次のようになります。
Regex r = new Regex("(?<!\\.[0-9a-z]*)[0-9]");
return r.Replace(sz, "#", 5);
テストされていませんが、これは実際には最初の5桁を置き換えて、 '##### 1111.000'を与えます。これはあなたが望むものではありません。だからKonradの解決策を考えてみましょう。 –
これは何のために使用されていますか?それがどのように使用されているかを知ることは役に立ちます。 – stevehipwell