

かっこ`[]`で囲まれた文字以外をマッチさせたいのですが、わかりません。

`あいうえお[ほげ]かきくけこ[ふが]`

↓マッチさせる文字列

  * `あいうえお`
  * `かきくけこ`


CC BY-SA 3.0
2015-04-10T15:33:12.937
9024
2015-04-11T06:38:02.963
2015-04-11T06:38:02.963
49
5855
question
正規表現
かっこ`[]`で囲まれた文字以外をマッチさせたい


> ↓マッチさせる文字列
>
> あいうえお  
>  かきくけこ

厳密にこの２パターンだけをマッチさせたい場合は、単に

> (あいうえお|かきくけこ)

でいいです(POSIX正規表現の場合)。

正規表現は言語によって多少書き方が変わることもあるので、  
できれば質問の際、使うプログラミング言語を明示したほう  
がよいでしょう。


CC BY-SA 3.0
2015-04-10T15:47:52.827
9026
2015-04-10T15:47:52.827
1046
9024
answer


”ほ”  
”げ”  
”ふ”  
”が”  
を除外したいのであれば  
[^ほげふが]+

その質問では、具体的な一致条件、不一致条件が明確ではないので、  
非常に答えずらいと思います。


CC BY-SA 3.0
2015-04-10T20:19:02.280
9031
2015-04-10T20:19:02.280
8396
9024
answer


先読みを利用すれば出来ると思います。  
マッチさせる箇所(A)を`[^\\[\\]]+`、させない箇所(B)を`\\[[^\\[\\]]+\\]`だとすると、先読みさせるにはA(?=B)、つまり`[^\\[\\]]+(?=\\[[^\\[\\]]+\\])`という形になります。これと末尾(もしくは全体)にマッチするパターンA$=`[^\\[\\]]+$`を組み合わせれば

[code]

    ([^\[\]]+(?=\[[^\[\]]+\])|[^\[\]]+$)
    
[/code]

となります。


CC BY-SA 3.0
2015-04-10T22:32:05.920
9032
2015-04-10T22:32:05.920
5750
9024
answer