mirror of
https://github.com/amyinspace/MagicSetEditor2.git
synced 2026-06-10 13:06:59 -04:00
158ecf67ad
The *_rule functions can now be considered deprecated Documented this by removing mentions of the rule functions, except for a mention of backwards compatibility. git-svn-id: svn://svn.code.sf.net/p/magicseteditor/code/trunk@997 0fc631ac-6414-0410-93d0-97cfa31319b6
42 lines
1.7 KiB
Plaintext
42 lines
1.7 KiB
Plaintext
Function: break_text
|
|
|
|
--Usage--
|
|
> break_text(some_string, match: regular expression, in_context: regular expression)
|
|
|
|
Break text by only keeping the parts of the input that match the regular expression.
|
|
The function returns a [[type:list]] of parts.
|
|
|
|
If @in_context@ is given, the context must also match the string where the match is represented as <tt><match></tt>.
|
|
|
|
When the @break_text@ is used many times with the same @match@ or @in_context@ values it is more efficient to declare these as default arguments:
|
|
> my_break := break_text@(match: "something")
|
|
> my_break("input") # called many times
|
|
This way the regular expression is only compiled once.
|
|
|
|
--Filter vs. break--
|
|
|
|
The function @filter_text@ is very similar to @break_text@, instead of returning a list it concatenates the items.
|
|
So for example where @break_text@ returns @["a","b","c"]@, @filter_text@ would return @"abc"@.
|
|
In fact, @filter_text@ could be implemented as
|
|
> filter_text := { for part in break_text() do part }
|
|
|
|
--Parameters--
|
|
! Parameter Type Description
|
|
| @input@ [[type:string]] String to replace in.
|
|
| @match@ [[type:regex]] Regular expression to match.
|
|
| @in_context@ [[type:regex]] (optional) Context to match
|
|
|
|
--Examples--
|
|
> break_text(match: "a", "banana") == ["a","a","a"]
|
|
> break_text(match: "na|.", "banana") == ["b","a","na","na"]
|
|
> break_text(match: "ap", "banana") == []
|
|
> break_text(match: "/", "a/b/c") == ["/","/"]
|
|
> break_text(match: "[^/]+", "a/b/c") == ["a","b","c"]
|
|
>
|
|
> f := break_text@(match: "xx+")
|
|
> f("xyzxxxxyyzz") == ["xxxx"]
|
|
|
|
--See also--
|
|
| [[fun:filter_text]] Keep only the text matching a regular expression.
|
|
|