2017-01-04 19 views
0

私は使用例があります。次のものと一致する必要があります。 入力文字列: マッチング基準をabpcdcccddd:「A」で始まり、「CCC」 例で終わるすべての文字にマッチ:abpcdccc(第四Poistionで、単一の文字「C」が成功したマッチングで無視されてしまった)GolangのregExp文字列(部分文字列を除く)まで一致する文字列

あなたは私を助けることができますGolangの正規表現では同じですか?

+0

あなたがしようとしているものを示すコードを追加する必要があります。 [anserの作成方法](http://stackoverflow.com/help/how-to-answer)を参照してください。 – Sethmr

答えて

1

私はそれがあなたが望んでいることを正確に理解しているとは確信していませんが、正しい軌道に乗ることができます。

あなたはcccに続くいくつかの単語文字が続くaを持っている文字列を、一致させたい場合は、単にこのようなものを使用することができます:あなたは、文字列を開始したい場合は

a\w+ccc 

をし、あなたが唯一の小文字のような特定の文字を許可したい場合は、文字CLASにそれらを置くことができる

^a\w+ccc$ 

:それぞれacccで終わり、あなたはこのような何かを行うことができますこのように:

a[a-z]+ccc 

これらのうちの1つがあなたの質問に答えてくれることを願っています。

0

「すべての文字」を正確に意味するかどうかは、空白(オプションで改行を含む)、文字、数字、記号、ユニコードセットなどの文字セットを含めることも含めないこともできます。

だから... ...

あなたが本当に「すべての文字が」最初は「」と「CCC」あなたが使用する必要がある間(つまり、空白を含む)を意味している場合:あなただけのすべてを意味している場合

a.+ccc 

"単語の文字"は、次のいずれかを使用できます:

a\w+ccc 
a[0-9a-zA-Z_]+ccc 

すべての文字:

a[a-zA-Z]+ccc 

すべてlowcase手紙:

a[a-z]+ccc 

...とその定義のためのあなたの本当の要件に応じて、より多くのオプションがあるでしょう。ここで

あなたはその例いくつかテストするための小さなプログラムを持っている:

package main 

import "fmt" 
import "regexp" 

func main() { 
     res := []string{ 
       `a.+ccc`, 
       `a\w+ccc`, 
       `a[a-z]+ccc`, 
     } 
     ss := []string{ 
       "ablablacccc", 
       "adadasdccc", 
       "sadlkasdlkcccc", 
       "accc", 
       "blaafoewoiccc", 
       "oirorwccc", 
       "abla ablaccc", 
     } 
     for _, re := range res { 
       r := regexp.MustCompile(re) 
       fmt.Printf("regular expression: %q\n", re) 
       for _, s := range ss { 
         fmt.Printf(" case %q: matches=%v match=%q\n", s, r.MatchString(s), r.FindString(s)) 
       } 
     } 
} 

そして、それが生成する出力を:

regular expression: "a.+ccc" 
    case "ablablacccc": matches=true match="ablablacccc" 
    case "adadasdccc": matches=true match="adadasdccc" 
    case "sadlkasdlkcccc": matches=true match="adlkasdlkcccc" 
    case "accc": matches=false match="" 
    case "blaafoewoiccc": matches=true match="aafoewoiccc" 
    case "oirorwccc": matches=false match="" 
    case "abla ablaccc": matches=true match="abla ablaccc" 
regular expression: "a\\w+ccc" 
    case "ablablacccc": matches=true match="ablablacccc" 
    case "adadasdccc": matches=true match="adadasdccc" 
    case "sadlkasdlkcccc": matches=true match="adlkasdlkcccc" 
    case "accc": matches=false match="" 
    case "blaafoewoiccc": matches=true match="aafoewoiccc" 
    case "oirorwccc": matches=false match="" 
    case "abla ablaccc": matches=true match="ablaccc" 
regular expression: "a[a-z]+ccc" 
    case "ablablacccc": matches=true match="ablablacccc" 
    case "adadasdccc": matches=true match="adadasdccc" 
    case "sadlkasdlkcccc": matches=true match="adlkasdlkcccc" 
    case "accc": matches=false match="" 
    case "blaafoewoiccc": matches=true match="aafoewoiccc" 
    case "oirorwccc": matches=false match="" 
    case "abla ablaccc": matches=true match="ablaccc" 
関連する問題