专注于VoIP,Opensips,Kamailio等技术,QQ群:QQ群:293697898
首先,如果不想自己编译,可以直接下载已编译好的工具。下载地址:
链接:https://pan.baidu.com/s/15jOZnAkJw13NTUQc-LCOFg?pwd=f9me
提取码:f9me
开发这个功能模块主要是为了用于验证在fsgui中的正则表达式,因为golang的标准的regexp不支持RE2,所以使用了
"github.com/dlclark/regexp2"
这个库用来支持RE2,当然它的支持应该和如拍黄片,如perl有区别,所以如果是用在golang的话,用这个工具会更好一些。
界面:
代码:
package main
import (
"strings"
"github.com/dlclark/regexp2"
"github.com/lxn/walk"
. "github.com/lxn/walk/declarative"
)
var HlpText string
func main() {
var RegTE, ChkTE, RstTE, HlpTE *walk.TextEdit
MakeHelp()
MainWindow{
Title: "上海宁卫http://nway.com.cn正则测试工具,中英文数字均可",
MinSize: Size{1200, 900},
Layout: VBox{},
Children: []Widget{
Composite{
Layout: Grid{Columns: 2},
Children: []Widget{
Composite{
Layout: Grid{Columns: 2},
Children: []Widget{
Label{
Text: "正则字符串:",
},
TextEdit{AssignTo: &RegTE},
Label{
Text: "校验字符串:",
},
TextEdit{AssignTo: &ChkTE},
Label{
Text: "结果:",
},
TextEdit{AssignTo: &RstTE, ReadOnly: true},
},
},
Composite{
Layout: Grid{Columns: 1},
Children: []Widget{
PushButton{
Text: "校验",
OnClicked: func() {
regex_str := RegTE.Text() //正则字符串
check_str := ChkTE.Text()
if len(strings.TrimSpace(regex_str)) == 0 || len(strings.TrimSpace(check_str)) == 0 {
RstTE.SetText("您在逗我玩,用空字符串匹配?")
return
}
re := regexp2.MustCompile(regex_str, regexp2.RE2)
if isMatch, _ := re.MatchString(check_str); isMatch {
m, e := re.FindStringMatch(check_str)
if e != nil {
RstTE.SetText("匹配过程出错:" + e.Error())
} else {
RstTE.SetText("这两个字符是正则匹配的\r\n匹配字符串:\r\n" + m.String())
}
} else {
RstTE.SetText("字符串:\r\n" + regex_str + " 和字符串:\r\n" + check_str + " \n正则不匹配")
}
},
},
TextEdit{AssignTo: &HlpTE, ReadOnly: true,
Text: HlpText,
HScroll: true,
VScroll: true,
},
},
},
},
},
},
}.Run()
}