teratail header banner
teratail header banner
質問するログイン新規登録

回答編集履歴

24

テキスト追加

2015/03/01 20:02

投稿

jun68ykt
jun68ykt

スコア9058

answer CHANGED
@@ -55,10 +55,13 @@
55
55
  ```
56
56
  と書けまして(javaでは、前後の/ は不要です。)、この regExpOfB が
57
57
  集合Bを、**要素を列挙していなくても、実質的に**表していることになっている、
58
- あるいは、集合論の用語でいえば正規表現 "^[a-z]{3}$" 、集合Bの
58
+ あるいは、集合論の用語でいえば正規表現 ^[a-z]{3}$ 、集合Bの
59
- **内包的記法**をプログラムコードとして書ける形にしたものになっている、
59
+ **内包的記法**をプログラムコードとして書ける形にしたものである、というのが
60
- というのが私の正規表現の理解の仕方です。
60
+ 私の正規表現の理解の仕方です。
61
61
 
62
+ ※集合の「**内包的記法**」については、以下をご参照ください。
63
+  [集合の記述法(集合 - Wikipedia)](http://ja.wikipedia.org/wiki/%E9%9B%86%E5%90%88#.E9.9B.86.E5.90.88.E3.81.AE.E8.A8.98.E8.BF.B0.E6.B3.95)
64
+
62
65
  上記のように、正規表現 「^ ・・・ $」を
63
66
 
64
67
  **ある条件を満たす文字列の集合**(を、文字列で表現したもの)

23

テキスト修正

2015/03/01 20:02

投稿

jun68ykt
jun68ykt

スコア9058

answer CHANGED
@@ -56,8 +56,8 @@
56
56
  と書けまして(javaでは、前後の/ は不要です。)、この regExpOfB が
57
57
  集合Bを、**要素を列挙していなくても、実質的に**表していることになっている、
58
58
  あるいは、集合論の用語でいえば正規表現 "^[a-z]{3}$" が、集合Bの
59
- **内包的記法**をプログラムコード書ける形にしたもの、とうのが私の
59
+ **内包的記法**をプログラムコードとして書ける形にしたものになってる、
60
- 正規表現の理解の仕方です。
60
+ というのが私の正規表現の理解の仕方です。
61
61
 
62
62
  上記のように、正規表現 「^ ・・・ $」を
63
63
 

22

テキスト修正

2015/03/01 19:56

投稿

jun68ykt
jun68ykt

スコア9058

answer CHANGED
@@ -56,7 +56,8 @@
56
56
  と書けまして(javaでは、前後の/ は不要です。)、この regExpOfB が
57
57
  集合Bを、**要素を列挙していなくても、実質的に**表していることになっている、
58
58
  あるいは、集合論の用語でいえば正規表現 "^[a-z]{3}$" が、集合Bの
59
- **内包的定義**になっている、というのが私の正規表現の理解の仕方です。
59
+ **内包的記法**をプログラムコードで書け形にしたもの、というのが私の
60
+ 正規表現の理解の仕方です。
60
61
 
61
62
  上記のように、正規表現 「^ ・・・ $」を
62
63
 

21

テキスト修正

2015/03/01 19:50

投稿

jun68ykt
jun68ykt

スコア9058

answer CHANGED
@@ -55,7 +55,8 @@
55
55
  ```
56
56
  と書けまして(javaでは、前後の/ は不要です。)、この regExpOfB が
57
57
  集合Bを、**要素を列挙していなくても、実質的に**表していることになっている、
58
+ あるいは、集合論の用語でいえば正規表現 "^[a-z]{3}$" が、集合Bの
58
- というのが、私の考え方です。
59
+ **内包的定義**になっている、というのが、私の正規表現の理解の仕方です。
59
60
 
60
61
  上記のように、正規表現 「^ ・・・ $」を
61
62
 

20

テキスト修正

2015/03/01 19:42

投稿

jun68ykt
jun68ykt

スコア9058

answer CHANGED
@@ -31,7 +31,7 @@
31
31
  を左から右へ読み進めるにしたがって、今の例でいうと、”50” や”52”といった文字列が、
32
32
  「集合Aの要素として**生み出される**」もしくは、よりプログラマーっぽい「生成される」
33
33
  という言葉を使って、「集合Aの要素として"50"や"52"が、**生成される**」という
34
- イメージを持つことと思います。
34
+ イメージを持つことが肝心だろうと思います。
35
35
  この例だと、条件にあう文字列の個数は、つまり集合Aの要素数は5個と簡単に
36
36
  列挙できる有限個ですから、正規表現を使わなくても、たとえば配列を使って
37
37
  (※以下、コード例はすべてJavaです。)

19

テキスト修正

2015/03/01 13:23

投稿

jun68ykt
jun68ykt

スコア9058

answer CHANGED
@@ -68,7 +68,7 @@
68
68
  と考えることができます。
69
69
 
70
70
  以上、正規表現をマスターする考え方(のひとつ)として、
71
- > 正規表現とは、ある条件を満たす文字列の集合(を文字列で表現したもの)
71
+ > 正規表現とは、ある条件を満たす文字列の集合(を文字列で表現したもの)である。
72
72
 
73
73
  という考え方を挙げさせて頂きました。
74
74
  お役に立てましたら幸いです。

18

テキスト修正

2015/03/01 13:20

投稿

jun68ykt
jun68ykt

スコア9058

answer CHANGED
@@ -68,7 +68,7 @@
68
68
  と考えることができます。
69
69
 
70
70
  以上、正規表現をマスターする考え方(のひとつ)として、
71
- > 正規表現「^ ・・・ $」 は、条件「・・・」を満たす文字列の集合を表している。
71
+ > 正規表現は、ある条件を満たす文字列の集合文字列でたもの)
72
72
 
73
73
  という考え方を挙げさせて頂きました。
74
74
  お役に立てましたら幸いです。

17

テキスト修正

2015/03/01 13:20

投稿

jun68ykt
jun68ykt

スコア9058

answer CHANGED
@@ -8,7 +8,7 @@
8
8
  から始めます。
9
9
   これに対する私の答えは、
10
10
 
11
- **ある条件にマッチ文字列の集合**(を 、文字列で表現したもの)
11
+ **ある条件を満たす文字列の集合**(を 、文字列で表現したもの)
12
12
 
13
13
  というものになります。なお、ここでいう「集合」とは、数学で習う集合(Set)のことです。
14
14
  以下、簡単な例を挙げて、説明します。
@@ -59,11 +59,11 @@
59
59
 
60
60
  上記のように、正規表現 「^ ・・・ $」を
61
61
 
62
- **ある条件にマッチ文字列の集合**(を、文字列で表現したもの)
62
+ **ある条件を満たす文字列の集合**(を、文字列で表現したもの)
63
63
 
64
64
  と考えると、^・・・$に限らず、正規表現とは何かという、最初のご質問に戻ると、
65
65
 
66
- **ある条件にマッチ文字列を含む文字列の集合**(を、文字列で表現したもの)
66
+ **ある条件を満たす文字列を含む文字列の集合**(を、文字列で表現したもの)
67
67
 
68
68
  と考えることができます。
69
69
 

16

テキスト修正

2015/03/01 12:55

投稿

jun68ykt
jun68ykt

スコア9058

answer CHANGED
@@ -8,7 +8,7 @@
8
8
  から始めます。
9
9
   これに対する私の答えは、
10
10
 
11
- **ある条件にマッチする文字列の集合を 、文字列で表現したもの**
11
+ **ある条件にマッチする文字列の集合**(を 、文字列で表現したもの
12
12
 
13
13
  というものになります。なお、ここでいう「集合」とは、数学で習う集合(Set)のことです。
14
14
  以下、簡単な例を挙げて、説明します。
@@ -59,15 +59,15 @@
59
59
 
60
60
  上記のように、正規表現 「^ ・・・ $」を
61
61
 
62
- **ある条件にマッチする文字列の集合を、文字列で表現したもの**
62
+ **ある条件にマッチする文字列の集合**(を、文字列で表現したもの)
63
63
 
64
64
  と考えると、^・・・$に限らず、正規表現とは何かという、最初のご質問に戻ると、
65
65
 
66
- **ある条件にマッチする文字列を含む文字列の集合を、文字列で表現したもの**
66
+ **ある条件にマッチする文字列を含む文字列の集合**(を、文字列で表現したもの)
67
67
 
68
68
  と考えることができます。
69
69
 
70
- 以上、正規表現をマスターする道しるべ(のひとつ)として、
70
+ 以上、正規表現をマスターする考え方(のひとつ)として、
71
71
  > 正規表現「^ ・・・ $」 は、条件「・・・」を満たす文字列の集合を表している。
72
72
 
73
73
  という考え方を挙げさせて頂きました。

15

テキスト修正

2015/03/01 12:45

投稿

jun68ykt
jun68ykt

スコア9058

answer CHANGED
@@ -68,8 +68,7 @@
68
68
  と考えることができます。
69
69
 
70
70
  以上、正規表現をマスターする道しるべ(のひとつ)として、
71
- > 「^ ・・・ $」 は、条件「・・・」を満たす文字列の集合を表しており、
71
+ > 正規表現「^ ・・・ $」 は、条件「・・・」を満たす文字列の集合を表している。
72
- > このときの条件の書き方のルールのことを正規表現という。
73
72
 
74
73
  という考え方を挙げさせて頂きました。
75
74
  お役に立てましたら幸いです。

14

テキスト修正

2015/03/01 12:35

投稿

jun68ykt
jun68ykt

スコア9058

answer CHANGED
@@ -8,7 +8,7 @@
8
8
  から始めます。
9
9
   これに対する私の答えは、
10
10
 
11
- **ある条件にマッチする文字列の集合を 、文字列で表現する、書き方のお約束**
11
+ **ある条件にマッチする文字列の集合を 、文字列で表現の**
12
12
 
13
13
  というものになります。なお、ここでいう「集合」とは、数学で習う集合(Set)のことです。
14
14
  以下、簡単な例を挙げて、説明します。
@@ -59,11 +59,11 @@
59
59
 
60
60
  上記のように、正規表現 「^ ・・・ $」を
61
61
 
62
- **ある条件にマッチする文字列の集合を、文字列で表現する、書き方のお約束**
62
+ **ある条件にマッチする文字列の集合を、文字列で表現の**
63
63
 
64
64
  と考えると、^・・・$に限らず、正規表現とは何かという、最初のご質問に戻ると、
65
65
 
66
- **ある条件にマッチする文字列を含む文字列の集合を、文字列で表現する、書き方のお約束**
66
+ **ある条件にマッチする文字列を含む文字列の集合を、文字列で表現の**
67
67
 
68
68
  と考えることができます。
69
69
 

13

テキスト修正

2015/03/01 12:31

投稿

jun68ykt
jun68ykt

スコア9058

answer CHANGED
@@ -4,9 +4,10 @@
4
4
  ガッツリ読むのが良いと思いますが、以下に、あくまで私個人のイメージを書かせて頂きます。
5
5
  説明のための便宜上、様々な正規表現の中でも、まずは
6
6
  「^ で始まり、$で終わるもの」
7
+ に話を限定させてください。つまり、まずは**正規表現「^ ・・・ $」とは何か?**という問い
8
+ から始めます。
7
- 話を限定させてください。
9
+  これ対する私の答えは、
8
10
 
9
- 正規表現 ^ ・・・ $ とは何かという質問への、私の回答は、
10
11
  **ある条件にマッチする文字列の集合を 、文字列で表現するための、書き方のお約束**
11
12
 
12
13
  というものになります。なお、ここでいう「集合」とは、数学で習う集合(Set)のことです。

12

誤字修正

2015/03/01 12:27

投稿

jun68ykt
jun68ykt

スコア9058

answer CHANGED
@@ -37,7 +37,7 @@
37
37
  ```lang-<java>
38
38
  String[] arrayOfA = {"50", "52", "54", "56", "58" };
39
39
  ```
40
- というふうに書けますが、もっとずっと要素数の多い集合や、(算ではあるが)無限個の
40
+ というふうに書けますが、もっとずっと要素数の多い集合や、(算ではあるが)無限個の
41
41
  要素を持つ集合も考えられますよね。たとえば、集合Bを
42
42
 
43
43
  B = { x | x は半角小文字のアルファベットだけから構成され、かつ、長さ3文字の文字列 }

11

テキスト修正

2015/03/01 10:38

投稿

jun68ykt
jun68ykt

スコア9058

answer CHANGED
@@ -37,8 +37,8 @@
37
37
  ```lang-<java>
38
38
  String[] arrayOfA = {"50", "52", "54", "56", "58" };
39
39
  ```
40
- というふうに書けますが、もっとずっと要素数の多い集合も考えられますよね。
40
+ というふうに書けますが、もっとずっと要素数の多い集合や、(加算ではあるが)無限個の
41
- たとえば、集合Bを
41
+ 要素を持つ集合も考えられますよね。たとえば、集合Bを
42
42
 
43
43
  B = { x | x は半角小文字のアルファベットだけから構成され、かつ、長さ3文字の文字列 }
44
44
 

10

テキスト修正

2015/03/01 10:33

投稿

jun68ykt
jun68ykt

スコア9058

answer CHANGED
@@ -52,8 +52,8 @@
52
52
  ```lang-<java>
53
53
  String regExpOfB = "^[a-z]{3}$";
54
54
  ```
55
- と書けまして(javaでは、前後の/ は不要です。)、この regExpOfBが
55
+ と書けまして(javaでは、前後の/ は不要です。)、この regExpOfB 
56
- 集合Bを、要素を列挙していなくても**実質的に**表していることになっている、
56
+ 集合Bを、**要素を列挙していなくても実質的に**表していることになっている、
57
57
  というのが、私の考え方です。
58
58
 
59
59
  上記のように、正規表現 「^ ・・・ $」を

9

テキスト修正

2015/03/01 10:26

投稿

jun68ykt
jun68ykt

スコア9058

answer CHANGED
@@ -58,7 +58,7 @@
58
58
 
59
59
  上記のように、正規表現 「^ ・・・ $」を
60
60
 
61
- **ある条件「・・・」にマッチする文字列の集合を、文字列で表現するための、書き方のお約束**
61
+ **ある条件にマッチする文字列の集合を、文字列で表現するための、書き方のお約束**
62
62
 
63
63
  と考えると、^・・・$に限らず、正規表現とは何かという、最初のご質問に戻ると、
64
64
 

8

テキスト修正

2015/03/01 10:21

投稿

jun68ykt
jun68ykt

スコア9058

answer CHANGED
@@ -28,8 +28,9 @@
28
28
  ^5[0|2|4|6|8]$
29
29
 
30
30
  を左から右へ読み進めるにしたがって、今の例でいうと、”50” や”52”といった文字列が、
31
- 「集合Aの要素として**生み出される**」
31
+ 「集合Aの要素として**生み出される**」もしくは、よりプログラマーっぽい「生成される」
32
+ という言葉を使って、「集合Aの要素として"50"や"52"が、**生成される**」という
32
- というイメージを持つことかと思います。
33
+ イメージを持つことかと思います。
33
34
  この例だと、条件にあう文字列の個数は、つまり集合Aの要素数は5個と簡単に
34
35
  列挙できる有限個ですから、正規表現を使わなくても、たとえば配列を使って
35
36
  (※以下、コード例はすべてJavaです。)

7

テキスト修正

2015/03/01 10:18

投稿

jun68ykt
jun68ykt

スコア9058

answer CHANGED
@@ -7,7 +7,7 @@
7
7
  に話を限定させてください。
8
8
 
9
9
  正規表現 ^ ・・・ $ とは何かという質問への、私の回答は、
10
- **ある条件「・・・」にマッチする文字列の集合を 、文字列で表現するための、書き方のお約束**
10
+ **ある条件にマッチする文字列の集合を 、文字列で表現するための、書き方のお約束**
11
11
 
12
12
  というものになります。なお、ここでいう「集合」とは、数学で習う集合(Set)のことです。
13
13
  以下、簡単な例を挙げて、説明します。

6

テキスト修正

2015/03/01 10:09

投稿

jun68ykt
jun68ykt

スコア9058

answer CHANGED
@@ -44,7 +44,7 @@
44
44
  とすると、集合Bの要素数は何個になるかというと、26の3乗で17576個という個数になり、
45
45
  さきほどのAのように、プログラムの中でこんなコード
46
46
  ```lang-<java>
47
- String[] arrayOfB = { “aaa”, “aab” … , “zzz” }; //こんなふうに全部並べて書けるけど^_^;
47
+ String[] arrayOfB = { “aaa”, “aab” … , “zzz” }; // 17576個、全部並べて書きます?
48
48
  ```
49
49
  で、すべてを列挙して書くなんてことは、とてもやっていられないですよね。
50
50
  しかし、正規表現を使えば、

5

テキスト修正

2015/03/01 10:07

投稿

jun68ykt
jun68ykt

スコア9058

answer CHANGED
@@ -44,7 +44,7 @@
44
44
  とすると、集合Bの要素数は何個になるかというと、26の3乗で17576個という個数になり、
45
45
  さきほどのAのように、プログラムの中でこんなコード
46
46
  ```lang-<java>
47
- String[] arrayOfB = { “aaa”, “aab” … , “zzz” }; //こんなふうに全部並べて書けるけど・・・
47
+ String[] arrayOfB = { “aaa”, “aab” … , “zzz” }; //こんなふうに全部並べて書けるけど^_^;
48
48
  ```
49
49
  で、すべてを列挙して書くなんてことは、とてもやっていられないですよね。
50
50
  しかし、正規表現を使えば、

4

テキスト修正

2015/03/01 10:05

投稿

jun68ykt
jun68ykt

スコア9058

answer CHANGED
@@ -4,10 +4,9 @@
4
4
  ガッツリ読むのが良いと思いますが、以下に、あくまで私個人のイメージを書かせて頂きます。
5
5
  説明のための便宜上、様々な正規表現の中でも、まずは
6
6
  「^ で始まり、$で終わるもの」
7
- に話を限定させてください。その前提で、
7
+ に話を限定させてください。
8
8
 
9
- 正規表現 ^ ・・・ $ とは何かという、私の回答は
9
+ 正規表現 ^ ・・・ $ とは何かという質問への、私の回答は
10
-
11
10
  **ある条件「・・・」にマッチする文字列の集合を 、文字列で表現するための、書き方のお約束**
12
11
 
13
12
  というものになります。なお、ここでいう「集合」とは、数学で習う集合(Set)のことです。

3

テキスト修正

2015/03/01 10:03

投稿

jun68ykt
jun68ykt

スコア9058

answer CHANGED
@@ -1,9 +1,8 @@
1
1
  ご質問の
2
2
  > 「正規表現」とは結局なになのか?
3
3
  に対して、きちんと自分なりに自信のある答えを得るには、やはり「[詳説 正規表現](http://www.amazon.co.jp/dp/4873113598)」あたりを
4
- ガッツリ読むのが良いと思いますが、以下に、あくまで私個人のざっくりなイメージを
4
+ ガッツリ読むのが良いと思いますが、以下に、あくまで私個人のイメージを書かせて頂きます。
5
- 書かせて頂きます。
6
- このイメージを説明するため、様々な正規表現の中でも、まずは
5
+ 説明ための便宜上、様々な正規表現の中でも、まずは
7
6
  「^ で始まり、$で終わるもの」
8
7
  に話を限定させてください。その前提で、
9
8
 

2

テキスト修正

2015/03/01 10:01

投稿

jun68ykt
jun68ykt

スコア9058

answer CHANGED
@@ -1,7 +1,7 @@
1
1
  ご質問の
2
2
  > 「正規表現」とは結局なになのか?
3
3
  に対して、きちんと自分なりに自信のある答えを得るには、やはり「[詳説 正規表現](http://www.amazon.co.jp/dp/4873113598)」あたりを
4
- ガッツリ読むしかないと思いますので、以下、あくまで私個人のざっくりなイメージを
4
+ ガッツリ読むのが良いと思います、以下、あくまで私個人のざっくりなイメージを
5
5
  書かせて頂きます。
6
6
  このイメージを説明するために、様々な正規表現の中でも、まずは
7
7
  「^ で始まり、$で終わるもの」

1

テキスト修正

2015/03/01 09:59

投稿

jun68ykt
jun68ykt

スコア9058

answer CHANGED
@@ -1,8 +1,8 @@
1
1
  ご質問の
2
2
  > 「正規表現」とは結局なになのか?
3
- に対して、きちんと自分なりの答えを得るには、やはり「[詳説 正規表現](http://www.amazon.co.jp/dp/4873113598)」など
3
+ に対して、きちんと自分なりに自信ある答えを得るには、やはり「[詳説 正規表現](http://www.amazon.co.jp/dp/4873113598)」あたり
4
- み頂くのがよいと思います、以下、あくまで私個人のざっくりな
4
+ ガッツリむしかないと思いますので、以下、あくまで私個人のざっくりなイメージを
5
- イメージを書かせて頂きます。
5
+ 書かせて頂きます。
6
6
  このイメージを説明するために、様々な正規表現の中でも、まずは
7
7
  「^ で始まり、$で終わるもの」
8
8
  に話を限定させてください。その前提で、