web-dev-qa-db-ja.com

MicrosoftWordの0個以上のスペースに一致する正規表現

ここで明らかなことを見逃していることを願っていますが、世界で0個以上のスペースをMicrosoft Word 2010の「正規表現」エンジンと一致させるにはどうすればよいですか?

ばかげた例として、キャプチャグループ内の次のすべてに一致させたいと思います。

cowseat grass
cows eat grass
cows  eat grass
cows   eat grass
cows    eat grass

私は通常(cows\s*eat grass)そしてそれで終わります。しかし、0個以上のスペースを一致させる方法がわかりません。フレーズ全体をキャプチャグループにキャプチャしたいのですが、スペースの数が可変です。

私は このドキュメント を参照として使用しています。

5
kmort

リンクしたドキュメントは、Microsoftの「正規表現」が実際には正規表現ではないことを示しています。それらはシェルスタイルのグロブの奇妙なハイブリッド(むしろ野郎の子)です( http://www.tldp.org/LDP/GNU-Linux-Tools-Summary/html/x11655.htm )および真の正規表現。

Glob構文は正規表現*の同義語として.*文字を使用するため、Microsoftは(コメントで述べたように)@+ではなく*と同等にすることを決定しました(a+aa*と同等であるため愚かです) atom a+は不要)の場合、運が悪いようです。

私の個人的な意見では、(1)これは愚かであり、(2)これらのパターンを「正規表現」と呼ぶことは、よくても誤解を招く可能性がありますが、残念ながら、適切にサポートするツールを優先してWordを放棄する以外は、これを回避する方法はありません。正規表現。 (理論的には、docxファイル自体のxml風の形式を解析し、テキストを抽出して、次に正規表現を適用することができると思います。 ...)

8
Kyle Strand