@vGrabko99
html, css, js, php, golang, mysql

Как переписать регулярку с js на golang?

Привет. На js есть регулярки
var key = "test";
html = html.replace(new RegExp("{{"+key+"}}","g"), key);
if_array = html.match(/<if>(.*?)<\/if>/g);

которая все {{test}} заменяет на test и потом все данные между тегами <if></if> помещает в массив [data1, data2, data3]

Я мучаюсь уже несколько дней... Зарание спасибо
  • Вопрос задан
  • 327 просмотров
Решения вопроса 2
@HomeEdition
package main

import (
	"fmt"
	"regexp"
)

func main() {
	html := "{{test}}ing <if>abc</if> {{test}} <if>123</if>"
	key := "test"
	html = regexp.MustCompile("{{"+key+"}}").ReplaceAllString(html, key)
	array_temp := regexp.MustCompile("<if>(.*?)</if>").FindAllStringSubmatch(html, -1)
	
	var if_array []string
	
	for _, val := range array_temp {
		if_array = append(if_array, val[1])
	}

	fmt.Println(html)
	fmt.Println(if_array)
}
Ответ написан
@vGrabko99 Автор вопроса
html, css, js, php, golang, mysql
package main

import (
	"fmt"
	"regexp"
	"strings"
)

func main() {
	var data string = `<if> {{t}} </if> {{s}} 
						<if> {{gg}} </if>`

	var replace = map[string]string{
		"t":  "te",
		"s":  "ss",
		"gg": "гг",
	}

	for key, value := range replace {
		data = strings.Replace(data, "{{"+key+"}}", value, 2)
	}

	re := regexp.MustCompile("<if>(.*?)</if>")
	if_array := re.FindAllString(data, -1)

	fmt.Println(if_array[0] + "\n")
	fmt.Println(if_array[1] + "\n")
}
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
Stalker_RED
@Stalker_RED
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы