2017-06-06 13 views
2

私はregexpの使用には自信がありませんが、私の最終目標は@#を除くすべての記号を削除するものです。Regexpは#と@を除くすべての記号を置き換えます

私が今行っていることは[\\p{P}\\d]です。 それはうまく動作しますが、私は維持する必要がある@#も削除します。

^Hello, my #friend @Даниил%% 中英 字 典!!. 

私は捕獲部分を復元するためにあなたが$1後方参照を保持し、交換する必要があるシンボルをキャプチャ

Hello my #friend @Даниил 中英 字 典 

答えて

2

に変更しようとしています:ここで

は、サンプル入力文字列です結果の文字列:

package main 

import (
    "fmt" 
    "regexp" 
) 

func main() { 
    s := "^Hello, my #friend @Даниил%% 中英 字 典!!." 
    re := regexp.MustCompile(`([#@])|[\p{P}\p{S}\d]`) 
    s = re.ReplaceAllString(s, "$1") 
    fmt.Println(s) 
} 

this Go demo印刷Hello my #friend @Даниил 中英 字 典

^\p{P}カテゴリに属していないので、\p{S}を追加しました。

パターンは([#@])|[\p{P}\p{S}\d]です。its online demoを参照してください。

詳細

  • ([#@]) - 又は
  • [\p{P}\p{S}\d] - - #又は@
  • |
  • に一致(置換パターンから$1/${1}と呼ぶ)キャプチャグループ1句読点記号または数字の文字。
+1

ありがとうございました!これはまさに私が探していたものです。 –

関連する問題