aboutsummaryrefslogtreecommitdiffhomepage
path: root/tests/string.in
blob: 15feb4f55b3cdab693eda2146e607f693b3ae9cc (plain)
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
90
91
92
# tests for string builtin
# mostly taken from examples

string match -r -v "c.*" dog can cat diz; and echo "exit 0"

string match -q -r -v "c.*" dog can cat diz; and echo "exit 0"

string match -v "c*" dog can cat diz; and echo "exit 0"

string match -q -v "c*" dog can cat diz; and echo "exit 0"

string match -v "d*" dog dan dat diz; or echo "exit 1"

string match -q -v "d*" dog dan dat diz; or echo "exit 1"

string match -r -v x y; and echo "exit 0"

string match -r -v x x; or echo "exit 1"

string match -q -r -v x y; and echo "exit 0"

string match -q -r -v x x; or echo "exit 1"

string length 'hello, world'

string length -q ""; and echo not zero length

string sub --length 2 abcde

string sub -s 2 -l 2 abcde

string sub --start=-2 abcde

string split . example.com

string split -r -m1 / /usr/local/bin/fish

string split '' abc

seq 3 | string join ...

echo ' abc '
string trim ' abc  '

string trim --right --chars=yz xyzzy zany

echo \x07 | string escape

string match '?' a

string match 'a*b' axxb

string match -i 'a??B' Axxb

echo 'ok?' | string match '*\?'

string match -r 'cat|dog|fish' 'nice dog'

string match -r '(\d\d?):(\d\d):(\d\d)' 2:34:56

string match -r '^(\w{2,4})\g1$' papa mud murmur

string match -r -a -n at ratatat

string match -r -i '0x[0-9a-f]{1,8}' 'int magic = 0xBadC0de;'

string replace is was 'blue is my favorite'

string replace 3rd last 1st 2nd 3rd

string replace -a ' ' _ 'spaces to underscores'

string replace -r -a '[^\d.]+' ' ' '0 one two 3.14 four 5x'

string replace -r '(\w+)\s+(\w+)' '$2 $1 $$' 'left right'

string replace -r '\s*newline\s*' '\n' 'put a newline here'

string replace -r -a '(\w)' '$1$1' ab

# test some failure cases
string match -r '[' 'a[sd' 2>/dev/null; or echo "invalid expression error"

string invalidarg 2>/dev/null; or echo "invalid argument error"

string length 2>/dev/null; or echo "missing argument returns 0"

string match -r -v "[dcantg].*" dog can cat diz; or echo "no regexp invert match"

string match -v "???" dog can cat diz; or echo "no glob invert match"

string match -rvn a bbb