@@ -20,3 +20,125 @@ func Example() {
20
20
// false
21
21
// false
22
22
}
23
+
24
+ func ExampleMatchString () {
25
+ matched , err := regexp .MatchString ("foo.*" , "seafood" )
26
+ fmt .Println (matched , err )
27
+ matched , err = regexp .MatchString ("bar.*" , "seafood" )
28
+ fmt .Println (matched , err )
29
+ matched , err = regexp .MatchString ("a(b" , "seafood" )
30
+ fmt .Println (matched , err )
31
+ // Output:
32
+ // true <nil>
33
+ // false <nil>
34
+ // false error parsing regexp: missing closing ): `a(b`
35
+ }
36
+
37
+ func ExampleRegexp_FindString () {
38
+ re := regexp .MustCompile ("fo.?" )
39
+ fmt .Printf ("%q\n " , re .FindString ("seafood" ))
40
+ fmt .Printf ("%q\n " , re .FindString ("meat" ))
41
+ // Output:
42
+ // "foo"
43
+ // ""
44
+ }
45
+
46
+ func ExampleRegexp_FindStringIndex () {
47
+ re := regexp .MustCompile ("ab?" )
48
+ fmt .Println (re .FindStringIndex ("tablett" ))
49
+ fmt .Println (re .FindStringIndex ("foo" ) == nil )
50
+ // Output:
51
+ // [1 3]
52
+ // true
53
+ }
54
+
55
+ func ExampleRegexp_FindStringSubmatch () {
56
+ re := regexp .MustCompile ("a(x*)b(y|z)c" )
57
+ fmt .Printf ("%q\n " , re .FindStringSubmatch ("-axxxbyc-" ))
58
+ fmt .Printf ("%q\n " , re .FindStringSubmatch ("-abzc-" ))
59
+ // Output:
60
+ // ["axxxbyc" "xxx" "y"]
61
+ // ["abzc" "" "z"]
62
+ }
63
+
64
+ func ExampleRegexp_FindAllString () {
65
+ re := regexp .MustCompile ("a." )
66
+ fmt .Println (re .FindAllString ("paranormal" , - 1 ))
67
+ fmt .Println (re .FindAllString ("paranormal" , 2 ))
68
+ fmt .Println (re .FindAllString ("graal" , - 1 ))
69
+ fmt .Println (re .FindAllString ("none" , - 1 ))
70
+ // Output:
71
+ // [ar an al]
72
+ // [ar an]
73
+ // [aa]
74
+ // []
75
+ }
76
+
77
+ func ExampleRegexp_FindAllStringSubmatch () {
78
+ re := regexp .MustCompile ("a(x*)b" )
79
+ fmt .Printf ("%q\n " , re .FindAllStringSubmatch ("-ab-" , - 1 ))
80
+ fmt .Printf ("%q\n " , re .FindAllStringSubmatch ("-axxb-" , - 1 ))
81
+ fmt .Printf ("%q\n " , re .FindAllStringSubmatch ("-ab-axb-" , - 1 ))
82
+ fmt .Printf ("%q\n " , re .FindAllStringSubmatch ("-axxb-ab-" , - 1 ))
83
+ // Output:
84
+ // [["ab" ""]]
85
+ // [["axxb" "xx"]]
86
+ // [["ab" ""] ["axb" "x"]]
87
+ // [["axxb" "xx"] ["ab" ""]]
88
+ }
89
+
90
+ func ExampleRegexp_FindAllStringSubmatchIndex () {
91
+ re := regexp .MustCompile ("a(x*)b" )
92
+ // Indices:
93
+ // 01234567 012345678
94
+ // -ab-axb- -axxb-ab-
95
+ fmt .Println (re .FindAllStringSubmatchIndex ("-ab-" , - 1 ))
96
+ fmt .Println (re .FindAllStringSubmatchIndex ("-axxb-" , - 1 ))
97
+ fmt .Println (re .FindAllStringSubmatchIndex ("-ab-axb-" , - 1 ))
98
+ fmt .Println (re .FindAllStringSubmatchIndex ("-axxb-ab-" , - 1 ))
99
+ fmt .Println (re .FindAllStringSubmatchIndex ("-foo-" , - 1 ))
100
+ // Output:
101
+ // [[1 3 2 2]]
102
+ // [[1 5 2 4]]
103
+ // [[1 3 2 2] [4 7 5 6]]
104
+ // [[1 5 2 4] [6 8 7 7]]
105
+ // []
106
+ }
107
+
108
+ func ExampleRegexp_ReplaceAllLiteralString () {
109
+ re := regexp .MustCompile ("a(x*)b" )
110
+ fmt .Println (re .ReplaceAllLiteralString ("-ab-axxb-" , "T" ))
111
+ fmt .Println (re .ReplaceAllLiteralString ("-ab-axxb-" , "$1" ))
112
+ fmt .Println (re .ReplaceAllLiteralString ("-ab-axxb-" , "${1}" ))
113
+ // Output:
114
+ // -T-T-
115
+ // -$1-$1-
116
+ // -${1}-${1}-
117
+ }
118
+
119
+ func ExampleRegexp_ReplaceAllString () {
120
+ re := regexp .MustCompile ("a(x*)b" )
121
+ fmt .Println (re .ReplaceAllString ("-ab-axxb-" , "T" ))
122
+ fmt .Println (re .ReplaceAllString ("-ab-axxb-" , "$1" ))
123
+ fmt .Println (re .ReplaceAllString ("-ab-axxb-" , "$1W" ))
124
+ fmt .Println (re .ReplaceAllString ("-ab-axxb-" , "${1}W" ))
125
+ // Output:
126
+ // -T-T-
127
+ // --xx-
128
+ // ---
129
+ // -W-xxW-
130
+ }
131
+
132
+ func ExampleRegexp_SubexpNames () {
133
+ re := regexp .MustCompile ("(?P<first>[a-zA-Z]+) (?P<last>[a-zA-Z]+)" )
134
+ fmt .Println (re .MatchString ("Alan Turing" ))
135
+ fmt .Printf ("%q\n " , re .SubexpNames ())
136
+ reversed := fmt .Sprintf ("${%s} ${%s}" , re .SubexpNames ()[2 ], re .SubexpNames ()[1 ])
137
+ fmt .Println (reversed )
138
+ fmt .Println (re .ReplaceAllString ("Alan Turing" , reversed ))
139
+ // Output:
140
+ // true
141
+ // ["" "first" "last"]
142
+ // ${last} ${first}
143
+ // Turing Alan
144
+ }
0 commit comments