43917


**CentOS7の正規表現仕様について**  
・何に基づきますか？  
・POSIX拡張正規表現？  
・どうやったら確認出来ますか？

* * *

**なぜこの事を調べる必要ができたか**  
・異なるOSやプログラミング言語及びソフトウェアで正規表現を使用することがあるのですが、「正規表現の違い」が「ある」のか「ない」のか、が分かりません  
・それぞれ何に基づきどう違うのか知りたく質問しました

**この疑問が解決することで何を達成したいのか**  
・正規表現の流れを知りたい  
・独自の正規表現なのか、あるいは他と共通の正規表現なのか  
・正規表現の用語についても、他と共通の正規表現用語なのか、仕様ではどう書かれているか確認したい


CC BY-SA 4.0
2018-05-09T01:29:32.943
43878
2018-05-11T10:12:46.323
2018-05-11T09:25:17.823
3054
7886
question
linux 正規表現
CentOS7の正規表現の仕様は何に基づきますか？


正規表現エンジンは多数あり、POSIX拡張正規表現はエンジンの１つに過ぎません。`grep`、`sed`、`perl`、`JavaScript`等、各環境が独自に選定しています。「CentOSだから何々エンジン」と定まるわけではありません。  
ですので、正規表現を導入している環境毎にどのようなエンジンを採用しているかを調べる必要があります。  
[詳説 正規表現](https://www.oreilly.co.jp/books/9784873113593/)を一読されることをお勧めします。


CC BY-SA 4.0
2018-05-11T09:32:18.947
43917
2018-05-11T09:32:18.947
4236
43878
answer


環境・コマンド・プログラミング言語毎に正規表現の違いがあるので、どういう文法かなどはそれぞれ調べる必要があります。

POSIXで規定している正規表現は、標準ライブラリのものだけです。OSの一部として配布されているコマンドは標準ライブラリの正規表現エンジンを使っているかもしれません。そうではないかもしれません。また、標準ライブラリの正規表現エンジンでもOSによって挙動の違いがあります。ですので、POSIXの企画書を見てもほぼ意味がありません。

Java, perl, python, ruby, node
などは標準ライブラリの正規表現エンジンは使っていません。さまざまな環境で同一の動作をしないと困るからです。


CC BY-SA 4.0
2018-05-11T10:12:46.323
43920
2018-05-11T10:12:46.323
3475
43878
answer