forked from livecode/livecode
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathfilter.lcdoc
More file actions
89 lines (64 loc) · 4.17 KB
/
Copy pathfilter.lcdoc
File metadata and controls
89 lines (64 loc) · 4.17 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
Name: filter
Type: command
Syntax: filter [lines of | items of] <filterSource> {with | without | [not] matching} [wildcard pattern | regex pattern] <filterPattern> [into <targetContainer>]
Summary: Filters each line or item in a source container or expression, removing the lines or items that do or don't match a pattern.
Introduced: 1.0
OS: mac,windows,linux,ios,android
Platforms: desktop,server,web,mobile
Example:
local tVar
put the propertyNames into tVar
filter tVar with "[az]*" -- tVar contains all property names beginning with a or z
Example:
-- Filtering a string literal causes the filtered string to be placed in the it variable
filter items of "apple,banana,cherry" with regex pattern "b.*" -- it contains "banana"
Example:
local tSource, tBackscriptObjects
put the backscripts into tSource
filter lines of tSource without regex pattern "^stack.*" into tBackscriptObjects
-- tBackscriptObjects contains a list of non-stack backscripts
Example:
create field "Numbers"
put "123,234,345,456,567,678,789" into field "Numbers"
filter items of field "Numbers" matching "*[!35-9]" -- field contains "234"
Parameters:
filterSource: An expression that evaluates to a string, or a container.
filterPattern: An expression used to match certain lines or items.
targetContainer: An expression that evaluates to a container
It:
If the filter command is used on a <filterSource> which is not a container, and no
<targetContainer> is specified, the filtered string will be placed in the <it> variable.
Description:
Use the <filter> command to pick specific lines or items in a container or expression.
The <filter>...with form and the <filter>...matching form retain the lines or items that
contain a match for the specified <filterPattern>.
The <filter>...without form and the <filter>...not matching form discard the lines or
items that do not contain a match for the specified <filterPattern>.
If you don't specify lines or items, all lines of the container are filtered.
If a regex pattern is specified, the <filterPattern> evaluates to a regular expression.
If a wildcard <filterPattern> is specified, the <filterPattern> consists of a string of
characters to match, which may be combined with any number of the following special characters:
- * : Matches zero or more of any character. The <filterPattern> A*C matches "AC", "ABC", or "ADZXC".
- ? : Matches exactly one character. The <filterPattern> A?C matches "ABC", but not "AC" or "ADZXC".
- [chars] : Matches any one of the characters inside the brackets. The <filterPattern> A[BC]D matches "ABD" or "ACD", but not "AD" or "ABCD".
- [char-char] : Matches any character whose unicode codepoint is between the first character and the second character.
- [!chars] : Matches any character which is not one of the characters inside the brackets.
The three bracketed forms can be combined to create more complex character classes, for
example the pattern [!abcA-C] matches any character which is not a, b or c (upper or lower case)
If no <filterPattern> type is specified, the <filterPattern> is handled as a wildcard.
If no <targetContainer> is specified, and you filter a container, the container contents
will be replaced by the filtered result.
Changes:
The <filter>...without form was added in version 2.1.1. In previous versions, the <filter>
command could be used only to retrieve lines that matched a wildcard expression.
The <filter> items... form was added in version 6.1. In previous versions, the <filter>
command could be used only to retrieve lines.
The ability to filter using a regular expression was added in version 6.1. In previous
versions, the <filter> command only supported wildcard expressions.
The ability to filter an expression was added in version 6.1. In previous versions, the
<filter> command could be used only for a container.
The <filter>...[not] matching form was added in version 6.1 to clarify the pattern handling.
The <filter>...into form was added in version 6.1. In previous versions, the filter
command always replaced the contents of the original container.
References: caseSensitive (property), it (keyword), replace (command), sort (command), matchChunk (function), matchText (function), replaceText (function)
Tags: text processing