| name | Parsing and Mutating Strings |
| description | Utilities in this library which provide effective ways to parse or mutate text at both runtime and design-time while ensuring that the resulting type is as narrow as possible. |
Parsing and Mutating Strings
Instructions
Identify which of the two best describe your needs:
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
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 from
inferred-types/types- Trim whitespace
- Strip a subsection of content
StripAfter<TStr,TBreak>[ source, examples ] - stripTStripafter first instance ofTBreakStripAfterLast<TStr,TBreak>[ source, examples ] - stripTStripafter last instance ofTBreakStripBefore<TStr,TBreak>[ source, examples ] - stripTStrbefore the substringTBreakis found; retain the restStripFirst<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")
- 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.