Parsing and Mutating Strings
Instructions
- Identify which of the two best describe your needs:
1. Simple - finding a sub-string inside a string variable - stripping or retaining content UNTIL a certain delimiter is found - ensuring that the string starts or ends with a certain sub-string 2. Structured - you need to parse a string for language features - different parts of the string will have different parsing rules based on the characters which preceded it.
- If your need fits the
Simpledescription then... You will likely want to use one of the following type or runtime utilities found in this repo. Every utility's source will have a description above the symbol and many also may include a simple example. Type Utilities you can import all of these utilities frominferred-types/types
- Trim whitespace - Trim<T> [source, examples] - TrimStart<T> [source, examples] - and TrimEnd<T> [source, examples] - Strip a subsection of content - StripAfter<TStr,TBreak> [source, examples] - strip TStrip after first instance of TBreak - StripAfterLast<TStr,TBreak> [source, examples] - strip TStrip after last instance of TBreak - StripBefore<TStr,TBreak> [source, examples] - strip TStr *before* the substring TBreak is found; retain the rest - StripFirst<T,U> [source, examples] - StripLeading<T,U> [source, examples] - StripSurround<T,U> [source, examples] - StripTrailing<T,U> [source, examples] - StripUntil<T,U> [source, examples] - Retain a subsection of content (the inverse of "strip") - RetainAfter<T,U> [source, examples] - RetainAfterLast<T,U> [source, examples] - RetainBetween<T,U> [source, examples] - RetainUntil<T,U> [source, examples] - RetainWhile<T,U> [source, examples] - String Interpolation (aka, injecting content into sections of a corpus of text) - TODO
- If your need fits the
Structuredneed then...
Notes:
- there is often (but not always) a 1:1 relationship between a type utility and a runtime function.
- The runtime function (often but not always) will leverage the corresponding type utility to produce narrow types.
- many *example links* are to test files; these test files use both runtime and type tests. For more about type tests you can read type testing document.