web-dev-qa-db-ja.com

テキスト編集用のプログラミング言語はどれですか?

テキストの編集と処理(置換、フォーマット、正規表現、文字列比較、ワードプロセッシング、テキスト分析など)のためのプログラミング言語が必要です。この目的のために、どのプログラミング言語がより強力で、より多くの機能を備えていますか?

私は [〜#〜] php [〜#〜] を使用しているため、現在はPHPを使用していますが、PHPはスクリプト言語です。 Webアプリケーションの場合、現在のプロジェクトはオフラインです。

PerlPython[〜#〜] c [〜#〜]C++Java などには、この目的のためのより多くの機能があり、プロジェクトをシフトする価値がありますか?

3
Googlebot

すべての一般的な言語には、テキストの編集と処理のための機能があります。それは主に個人的な好みの問題です。 PHPに既に慣れているので、構文は似ており、PHPの正規表現機能は非常にPerlに基づいているため、Perlをお勧めします。さらに、Perlはもともとテキスト処理言語として設計されたものであり、その起源を大きく超えていますが、関連するリソースを見つけるのは少し簡単かもしれません。

Java。NET のような大きなスタックを持つ言語に対しては、もちろん、スタックの学習にも興味がない限り、アドバイスをお願いします。

要するに、これは言語についてではなく、あなたについてです。 PHPでもあなたのニーズに応じて良い選択をします。確かに、いくつかの微調整が必​​要ですが、新しい言語を学ぶのにかかる時間が、使用方法を学ぶよりもはるかに長い場合PHPオフラインで使用する場合は、PHPを選択することをお勧めします。

20
yannis

Linuxを使用しているので、 Tcl 、Perl、およびPythonを確認することをお勧めします。実際に何をしたいかに応じて、これら3つはそれを処理できるはずです。また、 sed[〜#〜] awk [〜#〜] および grep など...そして Bash を使用します sh 、または tcsh スクリプトを使用すると、さらに便利です。 (shスクリプトを使用して作業を3ビットに分割し、Tcl、Perl、およびPythonそれぞれの適性に応じて使用することはできません!)

パフォーマンスや詳細なエラーメッセージが必要でない限り、C/C++、Javaなどのコンパイル済み言語が多くを提供するかどうかはわかりません。

12
NWS

Perlと Ruby は良い選択です。

ただし、実際に必要なのは [〜#〜] awk [〜#〜] かもしれませんが、これはかなり古いですが、必要なことを実行します。 AWKに関する優れた本はいくつかありますが、それらはすべて10年以上前のものです。ただし、それを段階的に行わないでください。それはまだ強力なツールです。

10
Zachary K

正規表現を学ぶ(regex)

Regexは、1〜2週間(1〜2時間/日)で習得できる小さなテクノロジーですが、それは 便利 であり、最初に使用するプロジェクトに時間を費やすことで成果を上げることができます。オン。ほとんどのプログラミング言語は [〜#〜] php [〜#〜] を含めてそれらをサポートしています。正規表現についてのすばらしい本 Mastering Regular Expressions by Jeff Friedl があります。起動は遅くなりますが、高速になり、Regexについて知っておくべきことはすべて揃っています。好きな技術書です。

AWK

Regexを理解すると、awk(gawk)、sed、およびgrepを使用して、または実際に任意の最新のプログラミング言語を使用して、驚くべきことができます。正規表現はプログラミング言語ではないので、技術的にはあなたの質問に対する答えではないと思いますが、Awkは完全な言語であり、1回限りのテキスト処理に適しています。

emacs

私が言及せざるを得ないもう1つのことは、emacsです。あるフォーマットから別のフォーマットにデータを処理するために、正規表現とelispのほとんどの組み合わせを、変換するデータと同じバッファーに書き込みます。 Ctrl-x Ctrl-eは、以前のLISPコードを評価します。 Ctrl-x r dは、現在ハイライトされている長方形を削除します。これらの関数の間では、必要なものが完全に得られるまで、バッファー内のテキストを変換してみることができます。本当にインタラクティブで素晴らしいです。これは Richard Stallman によって書かれたことは言うまでもありません。GNU Public License(copyleft))も作成し、ほとんどの人がオープンソースソフトウェアと呼ぶ動きを始めました。

Emacsのダークサイド

Emacsの学習曲線は非常に急です。 emacsを使用できるようになるまでに6か月かかり、もう考えなくなったのに6年かかりました。一般的な正規表現文字は、emacsで適切にエスケープするために3つのバックスラッシュを必要とします。これは、Friedlが「リーニングつまようじ症候群」と呼ぶものにつながる可能性があります。

Emacsはモードレスエディターなので、Alt、Ctrl、Shiftを1日中押し続けると、両手で小指や薬指をすり減らせる可能性のあるすべての長いキーシーケンスがあります。人々は冗談でそれをEscape-Meta-Alt-Ctrl-Shiftと呼んでいますが、それは本当です。 EmacsのEvil Modeを使用すると、腱をより簡単に操作できます。

一部のピエロは、コンピューターのキーボードのAltキーとCtrlキーの間に「Windowsキー」を追加することを決定したため、Emacsの使用はより困難になりました。私はWindows Keysの時代以前の古いThinkPadキーボードを使用しており、壊れた場合に備えてクローゼットに予備を用意しています。新しいキーボードでは、問題のあるキーを取り除くのが好きです。うーん...それはおそらく多すぎる情報です...

結論

正規表現を学ぶ-それはすべての言語をより良くします!

5
GlenPeterson

それは本当にあなたが何をする必要があるかに依存します。主に物事を認識したい場合、入力が行であり、各行はスペースで区切られたフィールドで構成されます [〜#〜] awk [〜#〜] は、学習しやすく、使いやすく、そしてそれが何をするかのために非常に効果的です。

私は本当にPerlを研究したことがないので、実際にコメントすることはできません。同上RubyおよびPython。

今日はそれを実行するものはないと思いますが、 [〜#〜] teco [〜#〜]PDP-1 は実際にはプログラミング言語でした編集、それは通訳が付いてきました。私は完全な#include 1970年代後半のTECOのファイルプロセッサ。 (私がそのマシンで持っていたすべてが適切でした。)

GNU Emacs は、実際には [〜#〜] lisp [〜#〜] システムであり、エディターとエディター拡張機能の記述を容易にする方法で特定の基本的な設計決定が解決されました。また、「カーネル」にコンパイルされた多くの低レベルの編集機能も備えています。

[〜#〜] snobol [〜#〜] は古くからありますが、そのようなもののために特別に設計されました。今日でもまだ入手可能であることを理解しました。

3
John R. Strohm

実際には コマンドラインでPHP を使用できるため、オフラインで使用できないというアサーションはfalseです。 PHPとその文字列処理関数に既に慣れている場合は、調べてみてください。

私はPHPを使用していましたが、PHPコマンドラインで実行できるスクリプトが cron でもジョブです)PHPスクリプトをオフラインで実行するのは少し奇妙でした。プリプロセッサタグ(つまり、<?php ... ?>)、しかしそれは実行可能でした。

または、Pythonスクリプトも舞台裏で使用しますが、何よりも個人的な好みの問題でした。

3
Spoike