Zwykle kończę z wieloma warunkami i/lub pętlami, aby przeanalizować wyrażenie regularne i interpolować wartości z powrotem w grupy przechwytujące i szukam doświadczonych odpowiedzi, aby rozwiązać ten problem, miejmy nadzieję, w prosty sposób.Najprostszy sposób na skonstruowanie łańcucha przez interpolację wartości do wzoru Regex?
Na przykład, biorąc pod uwagę regex wzór jak X(?<xid>\d+)-(?<xsub>\w+)\.xml
mający nazwanych grup przechwytywania "XID" i "XSUB", którego celem jest dopasować nazwy plików, takich jak: X1-foo.xml, X555-bar.xml, etc, gdy dostarczane z argumentami: int xid=999, string xsub="baz"
, chcę interpolacji te wartości do wzoru grup do skonstruowania właściwego pliku: X999-baz.xml
zachować to proste, wyraźne zrzuty nie są zagnieżdżone.
Bez String.Format:
Koncepcja ta jest łatwo zrobić z elementów wielkoformatowych NET Smyczkowych jak String.Format("X{0}-{1}.xml", xid, xsub)
jednak mam już regex wzór do analizowania z tych wartości z dowolnego ciągu znaków nazwy pliku, a chcesz użyć tego samego wzoru, aby przejść w przeciwnym kierunku, rekonstruując z nim nazwę pliku, dla dokładności. Jeśli potrzebuję wzorca regex do analizowania wartości z łańcucha, ale ciąg z elementami formatu służącymi do rekonstrukcji nazwy pliku, wymaga użycia dwóch rodzajów odrębnych składni, co stwarza większe prawdopodobieństwo ręcznego błędu podczas ich zapisywania - jest to zbyt łatwe omyłkowo utwórz ciąg o złym formacie, który nie rekonstruuje prawidłowo wyniku dopasowania wzorca regex lub odwrotnie.
W tej sytuacji wyrażenie regularne jest w rzeczywistości "wejściem". – BoltClock