私は通常、正規表現を解析してその値をその捕捉グループに補間するための条件やループをたくさん作成し、うまく簡単にこの問題を解決するための経験豊富な答えを探しています。例えばRegexパターンに値を補間して文字列を作成する最も簡単な方法は?
、X(?<xid>\d+)-(?<xsub>\w+)\.xml
ような正規表現パターンは、名前付き捕捉基を有する所与 "XID" などのファイル名と一致することを意図し、 "XSUB":X1-foo.xmlを、X555-bar.xmlなどの引数で提供された場合、:int xid=999, string xsub="baz"
、私は適切なファイル名を構築するために、パターングループにそれらの値を補間したい:X999-baz.xml
をシンプルに保つために、明示的なキャプチャは、ネストされていません。 String.Formatのなし
:
この概念は簡単String.Format("X{0}-{1}.xml", xid, xsub)
などの.NET文字列の書式項目で達成されるが、私はすでに任意のファイル名の文字列からそれらの値を解析するための正規表現パターンを持っている、としたいです同じパターンを使用してファイル名を再構成して反対方向に進み、正確にします。文字列の値を解析するための正規表現パターンが必要ですが、ファイル名を再構成するためにフォーマット項目を含む文字列を使用するには、2種類の異なる構文を使用する必要があります。誤って正規表現のパターンマッチの結果を正しく再構成しない不正な形式の項目文字列を作成したり、その逆もあります。
をこの状況では、正規表現は実際には 'input'です。 – BoltClock