doc: manual: document our regular expressions (#224)
This commit is contained in:
parent
e63ca9766d
commit
7c2ebe6c7a
@ -1607,6 +1607,42 @@ Examples:
|
|||||||
## Appendices
|
## Appendices
|
||||||
|
|
||||||
|
|
||||||
|
### Regular Expressions
|
||||||
|
|
||||||
|
hledger uses [regular expressions](http://www.regular-expressions.info) in a number of places:
|
||||||
|
|
||||||
|
- [query terms](#queries), on the command line and in the hledger-web search form: `REGEX`, `desc:REGEX`, `cur:REGEX`, `tag:...=REGEX`
|
||||||
|
- [CSV rules](#csv-rules) conditional blocks: `if REGEX ...`
|
||||||
|
- [account alias](#account-aliases) directives and options: `alias /REGEX/ = REPLACEMENT`, `--alias /REGEX/=REPLACEMENT`
|
||||||
|
|
||||||
|
hledger's regular expressions come from the
|
||||||
|
[regex-tdfa](http://hackage.haskell.org/package/regex-tdfa/docs/Text-Regex-TDFA.html)
|
||||||
|
library. In general they:
|
||||||
|
|
||||||
|
- are case insensitive
|
||||||
|
- are infix matching (do not need to match the entire thing being matched)
|
||||||
|
- are [POSIX extended regular expressions](http://www.regular-expressions.info/posix.html#ere)
|
||||||
|
- also support [GNU word boundaries](http://www.regular-expressions.info/wordboundaries.html) (\\<, \\>, \\b, \\B)
|
||||||
|
- and parenthesised [capturing groups](http://www.regular-expressions.info/refcapture.html) and numeric backreferences in replacement strings
|
||||||
|
- do not support [mode modifiers](http://www.regular-expressions.info/modifiers.html) like (?s)
|
||||||
|
|
||||||
|
Some things to note:
|
||||||
|
|
||||||
|
- In the `alias` directive and `--alias` option, regular expressions
|
||||||
|
must be enclosed in forward slashes (`/REGEX/`). Elsewhere in hledger,
|
||||||
|
these are not required.
|
||||||
|
|
||||||
|
- To match a regular expression metacharacter like `$` as a literal
|
||||||
|
character, prepend a backslash. Eg to search for amounts with the
|
||||||
|
dollar sign in hledger-web, write `cur:\$`.
|
||||||
|
|
||||||
|
- On the command line, some metacharacters like `$` have a special
|
||||||
|
meaning to the shell and so must be escaped a second time, with single
|
||||||
|
or double quotes or another backslash. Eg, to match amounts with the
|
||||||
|
dollar sign from the command line, write `cur:'\$'` or `cur:\\$`.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
### Editor support
|
### Editor support
|
||||||
|
|
||||||
Add-on modes exist for various text editors, to make working with journal
|
Add-on modes exist for various text editors, to make working with journal
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user