質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Go

Go(golang)は、Googleで開発されたオープンソースのプログラミング言語です。

Q&A

解決済

2回答

5925閲覧

特定の文字列以下を削除した文字列に置換したい

退会済みユーザー

退会済みユーザー

総合スコア0

Go

Go(golang)は、Googleで開発されたオープンソースのプログラミング言語です。

1グッド

1クリップ

投稿2020/03/08 06:41

編集2020/03/08 07:42

指定の文字以下を削除した文字列に変換する方法

var mojiretu1 string = "IchigoBananaMeron" var mojiretu2 string = "IchigoSuikaBananaOrange"

Bnana以下の文字を削除した文字列を生成するにはどのようにすれば良いのでしょうか?

var mojiretu1 string = "Ichigo" var mojiretu2 string = "IchigoSuika"

になるようにしたいです。

PHPだとstrcspn(文字列の先頭から、特定の文字が含まれない長さを出す)を使えばできるようなのですがgolangですとどうすれば良いのでしょうか?
$trimed = substr($str, 0, strcspn($str,'('));

go version go1.13.8

DrqYuto👍を押しています

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

ベストアンサー

https://play.golang.org/p/qTlbJigiOyZ

go

1 2package main 3 4import ( 5 "fmt" 6 "strings" 7) 8 9var mojiretu2 string = "IchigoSuikaBananaOrange" 10 11func main() { 12 mojiretu2 = mojiretu2[:strings.Index(mojiretu2, "Banana")] 13 fmt.Println(mojiretu2) 14}

こんな感じでどうでしょうか?

投稿2020/03/08 09:26

nobonobo

総合スコア3367

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

退会済みユーザー

退会済みユーザー

2020/03/09 10:47

質問後自分でも調べながら書いていたのですが全く同じものを書いていました ありがとうございます!
guest

0

package main import ( "fmt" "regexp" ) func main(){ var mojiretu1 string = "IchigoBananaMeron" rep := regexp.MustCompile(`Banana.+$`) mojiretu1 = rep.ReplaceAllString(mojiretu1, "") fmt.Println(mojiretu1) }

出力
Ichigo

正規表現は自信ないのですが、これでどうでしょう?

参考

  • 逆引きGolang (正規表現)

https://ashitani.jp/golangtips/tips_regexp.html
"正規表現を使って文字列を置き換える
ReplaceAllString()を使います。

package main

import "fmt"
import "regexp"

func main() {
str := "Copyright 2015 by ASHITANI Tatsuji."
rep := regexp.MustCompile([A-Za-z]*right)
str = rep.ReplaceAllString(str, "Copyleft")

fmt.Println(str) // => "Copyleft 2015 by ASHITANI Tatsuji."

}"

  • PHP - PHP正規表現 #以降を削除|teratail

https://teratail.com/questions/41560
"PHPは書いたことないので、キレイなコードかはわかりませんが

$string = 'http://rocketnews24.com/2016/07/19/775490/#respond';
$pattern = '/#.+$/'; //#の後ろから最後尾まで
$replacement = ''; //空白にする

// 置換後
echo preg_replace($pattern, $replacement, $string);"

  • 正規表現一覧

http://gimite.net/help/devas-ja/all_regex.html
". 任意の1文字

  • 直前の文字の0回以上の繰り返し*1
  • 直前の文字の1回以上の繰り返し*1

? 直前の文字は省略可能1
? 直前の文字の0回以上の繰り返し2
+? 直前の文字の1回以上の繰り返し
2"

投稿2020/03/08 09:18

DrqYuto

総合スコア432

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

退会済みユーザー

退会済みユーザー

2020/03/09 10:50

正規表現でもできそうですね ご回答ありがとうございます
DrqYuto

2020/03/10 05:45

こちらこそ、ありがとうございます!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問