回答編集履歴
1
参考ページの追加。
test
CHANGED
@@ -11,3 +11,47 @@
|
|
11
11
|
- ゼロから正規表現を使えるようになるためのステップ [http://qiita.com/seihowlow24/items/79f565f22b9223c6e848](http://qiita.com/seihowlow24/items/79f565f22b9223c6e848)
|
12
12
|
|
13
13
|
- 正規表現の勉強に役立つリンク [http://mi813.hatenablog.com/entry/2015/02/21/112128](http://mi813.hatenablog.com/entry/2015/02/21/112128)
|
14
|
+
|
15
|
+
|
16
|
+
|
17
|
+
- 正規表現とは [http://itpro.nikkeibp.co.jp/article/Keyword/20070207/261234/](http://itpro.nikkeibp.co.jp/article/Keyword/20070207/261234/)
|
18
|
+
|
19
|
+
> ...
|
20
|
+
|
21
|
+
> 正規表現(せいきひょうげん)とは,ある文字の並びを使って,より複雑な文字の並びを表現する方法です。
|
22
|
+
|
23
|
+
> 最も広く知られている例は「*」と「.」でしょう。
|
24
|
+
|
25
|
+
> 「*」は直前の文字の0個以上の並びを,「.」は何らかの1文字を表します。
|
26
|
+
|
27
|
+
> 正規表現を使うと,わずかな文字を書き下ろすだけで,柔軟な文字列の表現が可能になります。
|
28
|
+
|
29
|
+
> これが正規表現を使う理由です。
|
30
|
+
|
31
|
+
> ...
|
32
|
+
|
33
|
+
> 歴史的には1940年代の形式言語論に由来しますが,C言語とUNIXの開発に貢献したKen Thompson氏が1970年前後にQEDというエディタ・ソフトウエア(エディタ),ついでedと呼ばれるUNIX上のエディタに文字列検索用として組み込んだことから,コンピュータの世界でも利用されるようになりました。
|
34
|
+
|
35
|
+
> ...
|
36
|
+
|
37
|
+
> 正規表現は,POSIXの標準,すなわち「POSIX Part2:Shell and Utilities」として標準化されています。
|
38
|
+
|
39
|
+
> しかし,さまざまなエディタ,プログラミング言語,シェルは,かならずしもPOSIX標準で定められた表現をすべては実装していません。さらに独自に拡張した正規表現も含めています。従って基本的な正規表現を覚えたら,用途に応じて「方言」に習熟する必要があります。
|
40
|
+
|
41
|
+
> ...
|
42
|
+
|
43
|
+
|
44
|
+
|
45
|
+
- redditから 正規表現: その理論、実装と歴史 [http://d.hatena.ne.jp/karasuyamatengu/20090915/1252974459](http://d.hatena.ne.jp/karasuyamatengu/20090915/1252974459)
|
46
|
+
|
47
|
+
> ...
|
48
|
+
|
49
|
+
> Perlをはじめとするスクリプト言語系とgrep,awkなど伝統的Unixのregexの実装には決定的な違いがある。
|
50
|
+
|
51
|
+
> 前者はbacktrackingを使い、後者はUnix創始者のKen Thompson氏が1960年代に発明したNFAベースのもの。
|
52
|
+
|
53
|
+
> 実は「a?」や単独のキャラクタ「a」が繰り返されるような「特殊」な正規表現だと、Thompson NFA実装の方が桁違いに速い。
|
54
|
+
|
55
|
+
> ...
|
56
|
+
|
57
|
+
|