This repository has been archived by the owner on Sep 6, 2020. It is now read-only.
/
find.go
148 lines (116 loc) · 3.25 KB
/
find.go
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
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
// Copyright 2016 The go-ego Project Developers. See the COPYRIGHT
// file at the top-level directory of this distribution and at
// https://github.com/go-ego/ego/blob/master/LICENSE
//
// Licensed under the Apache License, Version 2.0 <LICENSE-APACHE or
// http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
// <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your
// option. This file may not be copied, modified, or distributed
// except according to those terms.
package rego
import (
// "fmt"
"regexp"
"strings"
)
func FindIf(str string) []string {
regt := regexp.MustCompile("(?U)if [\\s\\S]*\\{")
restr := regt.FindAllString(str, -1)
return restr
}
func FindS(str string) []string {
regt := regexp.MustCompile("(?U)\\<style\\>[\\s\\S]*\\<\\/style\\>|\\<script\\>[\\s\\S]*\\<\\/script\\>")
restr := regt.FindAllString(str, -1)
return restr
}
func FindSty(str string) []string {
regt := regexp.MustCompile("(?U)\\<style\\>[\\s\\S]*\\<\\/style\\>")
restr := regt.FindAllString(str, -1)
return restr
}
func FindScr(str string) []string {
regt := regexp.MustCompile("(?U)\\<script\\>[\\s\\S]*\\<\\/script\\>")
restr := regt.FindAllString(str, -1)
return restr
}
func Brace(text string) []string {
regc := regexp.MustCompile("(?U)\\{[^\\{|^\\}|^\\.|^\\<|^\\>]*\\}")
restr := regc.FindAllString(text, -1)
return restr
}
func KeyBrace(key, text string) []string {
regc := regexp.MustCompile("(?U)\\<" + key + "\\>\\{[^\\{|^\\}|^\\.|^\\<|^\\>]*\\}\\<\\/" + key + "\\>")
restr := regc.FindAllString(text, -1)
return restr
}
func ImpBrace(imp, key, text string) []string {
regc := regexp.MustCompile("(?U)\\<" + imp + "\\>[\\s\\S]*" + key + "[\\s\\S]*\\<\\/" + imp + "\\>")
restr := regc.FindAllString(text, -1)
return restr
}
func FindaKey(key []string) []string {
var rekey []string
for i := 0; i < len(key); i++ {
tkey := TrimB(key[i])
rekey = append(rekey, tkey)
}
return rekey
}
func FindKey(key []string) []string {
var rekey []string
for h := 0; h < len(key); h++ {
bkey := Brace(key[h])
for i := 0; i < len(bkey); i++ {
tkey := TrimB(bkey[i])
rekey = append(rekey, tkey)
}
}
return rekey
}
func FindNoVal(text string) []string {
regc := regexp.MustCompile(`(?U)\"[\s\S]*\"`)
restr := regc.FindAllString(text, -1)
return restr
}
func FindBVal(key, rstr string) []string {
var streg string
tkey := TrimB(key)
if strings.Contains(rstr, "{") {
streg = `(?U)` + tkey + "\\=\\{[\\s\\S]*\\}"
} else {
streg = `(?U)` + tkey + `\=\"[\s\S]*\"`
}
regc := regexp.MustCompile(streg)
restr := regc.FindAllString(rstr, -1)
return restr
}
func FindQVal(key, text string) []string {
tkey := TrimB(key)
streg := `(?U)` + tkey + `\=\"[\s\S]*\"`
regc := regexp.MustCompile(streg)
restr := regc.FindAllString(text, -1)
return restr
}
func FindVal(key, text string) []string {
var val []string
bval := FindBVal(key, text)
qval := FindQVal(key, text)
for h := 0; h < len(bval); h++ {
val = append(val, bval[h])
}
for i := 0; i < len(qval); i++ {
val = append(val, qval[i])
}
return val
}
func FindArrVal(key []string) []string {
var reval []string
for h := 0; h < len(key); h++ {
bval := Brace(key[h])
for i := 0; i < len(bval); i++ {
tval := TrimB(bval[i])
reval = append(reval, tval)
}
}
return reval
}