Вчера я спросил this question о разделении строки в python. С тех пор я решил сделать этот проект в Го вместо этого. У меня есть следующее:Как включить операторов в мой вывод, когда я разделяю строку?
input := "house-width + 3 - y^(5 * house length)"
s := regexp.MustCompile(" ([+-/*^]) ").Split(input, -1)
log.Println(s) // [house-width 3 y (5 house length)]
Как включить операторов в этот выход? например Я хотел бы следующий вывод:
['house-width', '+', '3', '-', 'y', '^', '(5', '*', 'house length)']
EDIT: Для уточнения я разделив на пространственно разделенных операторов, а не только оператор. Оператор должен иметь пространство на обоих концах, чтобы отличать его от тире/дефиса. Пожалуйста, обратитесь к моему исходному вопросу python, к которому я привязался, для уточнения, если это необходимо.
Есть ли какой-либо причине вам нужно использовать регулярное выражение против строк. Разделить (ввод, "")? http://golang.org/pkg/strings/#Split – Verran
Этот '' ([+ -/* ^]) "' более функциональен как '' \ s * ([+ \ -/* ^]) \ s * "и знак минус должен быть экранирован. В чем проблема? Включает ли он захват в выходной массив? Во всяком случае, я не уверен, что вы должны разделить на пробелы, а не на самом деле разделитель. – sln
@ sln проблема заключается в том, что то, что у меня есть, не возвращает операторов. Вместо этого он возвращает «['house-width' '3' 'y' '(5' 'house length)']" http://play.golang.org/p/B4zCSLWPjz –