第IV部〜テキスト編集を極める!! 正規表現について ●正規表現について 秀丸だけでなく、高度で自由度の高い検索をするには必須の「正規表現」。 ここでは実用上重要な例をとりあげながら、わかりやすく解説します。 今日からあなたの「検索」が変わります。 正規表現に関する話題は、 次の「【0】いんとろだくしょん」に続く 以下の5章から構成されています。 【1】 基本編 〜表記のルールと意味〜 【2】 実践編 〜正規表現による置換の実際〜 【3】 まとめ 【4】 参考文献 【5】 (補足) 秀丸上での複数行にまたがる検索について ※以下の内容は、秀丸ヘルプの「検索系コマンド→検索→正規表現」の 内容についての補足です。 よってヘルプを参照しながら読まれる事を想定して書かれています。 【0】 いんとろだくしょん いきなりですがここでクイズです。
ハッシュテーブルは、中級の基本技である。「ハッカー」と呼ばれる程のプログラマならば、使いなれた自作ハッシュライブラリを持っていて当然である。また、これは非常に検索が速く便利なために、awk から Perl に至るスクリプト言語で、言語仕様に採り入れられてよく「連想配列」などと呼ばれている。要するに、 $List{'http'} = 80; のように、配列なのに文字列を添字として取るような書き方をするアレである。これは「キー」である文字列に対して、「値」である何かのオブジェクトを返すという動作であり、そういう動作こそが「ハッシュテーブル」以外の何者でもない。ものすごく便利なので、ぜひマスターされたい。→ Java 講座の「ハッシュテーブル」 準備~リスト版線形探査 ハッシュテーブルの原理 ライブラリの実装 他の応用 Java の Hashtable クラス 準備~リスト版線形探査 ハッシュテ
str 正規表現の照合を実施する文字列。すべての値は文字列に強制されますので、省略したり undefined を渡したりすると exec() は文字列 "undefined" を検索するようになりますが、これは望むところではないでしょう。 照合に失敗した場合は、 exec() メソッドは null を返し、 lastIndex を 0 に設定します。 照合に成功した場合、 exec() メソッドは配列を返し、正規表現オブジェクトの lastIndex プロパティを更新します。返された配列は、一致したテキストを最初の項目として持ち、その後、一致したテキストの括弧によるキャプチャグループに対して 1 つずつの項目を持ちます。 index 文字列中で一致した位置の 0 から始まるインデックスです。 input 照合対象であった元の文字列です。 groups 名前付きキャプチャグループを示す nu
・パターンマッチサンプル JavaScriptでのパターンマッチのサンプルを載せておきます。 ●任意の文字に一致 書式:/文字/ 例1:"abcdefg".match(/a/) 結果:a 例2:"abcdefg".match(/cde/) 結果:cde 例2:"abcdefg".match(/xyz/) 結果:null ●改行文字を除く任意の1文字にマッチ 書式:/.文字/ 例1:"abcdefg".match(/.f/) 結果:ef ●複数個の文字にマッチ 書式:/../ (.はマッチする個数並べる) 例1:"abcdefg".match(/.f/) 結果:ef ●指定文字のいずれかにマッチ 書式:/[任意文字]/ 例1:"abcdefg".match(/[ahg]/) 結果:a ●指定文字以外のいずれかにマッチ 書式:/[^任意文字]/ 例1:"abcdefg".match(/[^ah
Regular Expressions for client-side JavaScript a free online quick reference by VisiBone I hope you find these excerpts of the VisiBone JavaScript references very useful. See also the JavaScript Card and Foldouts Here is the syntax for a very powerful and very cryptic string pattern matching scheme in the client-side JavaScript of web browsers. You can use it to validate form entry, parse URLs, an
正規表現オブジェクトを生成します。正規表現オブジェクトは、文字列のパターンマッチングを行う際に用いられます。次の例は、match() を用いて文字列 str が "DEF" という文字列を含んでいるかどうかを検査します。flags の詳細は フラグ を参照してください。
JavaScriptでは関数の定義とオブジェクトのメソッドの定義は同じになります(メソッドの定義については別項で説明しています)。どちらもfunction()を使って機能を定義します。関数の基本的な書式は以下のようになります。 function 関数名(パラメータ){ 処理内容 } JavaScriptでは関数名は英文字で始まるのが基本となっていますが、$や_などの記号も使うことができます。また、Firefoxなどでは日本語の関数名を指定しても動作します。 関数名は省略することもでき、その場合は匿名関数/無名関数となります。これに関しては後述します(→)。 関数のパラメータは引数とも呼ばれ、JavaScriptではカンマで区切って複数指定することができます。パラメータも省略することができます。パラメータを省略した場合でもargumentsにより任意の数、任意の位置のパラメータ値を取得するこ
#2です \マークに関しては、通常string型のリテラルとして変数に代入する場合、エスケープが必要です なので、まず変数の代入の時点で //例 変数str に ?|\ という文字列を代入させたい場合 str = "?|\\"; となります まずここがエラーの原因になっている可能性の一点目 そしてもうひとつが、RegExp内です 前回説明したようにRegExp -> replaceと渡るので"エスケープの\"を表すためにも更にエスケープが必要です jsの (\\?|\\|) とperlの (\?|\|) を比べるとわかりやすいですが、\が倍必要になるということです replace内でエスケープではない文字列の\マーク =1点目で挙げたように \\ を渡したいので、 RegExp内では\\両方をエスケープしてあげる必要があります つまり、めんどくさいことになりますが、\\\\ となるわけです
※ ただのサンプルですので、実際には、データがサーバに送信されることはありませんが、JavaScriptによる入力チェックはなされます。 ↑上のフォームは、よく見かける入力フォームです。JavaScriptによるチェックを入れています。下記のようなソースになりますが、これを題材に難読化処理のためのヒントをいくつかご紹介していきたいと思います。 (※ なお、本題とはずれますが、JavaScriptによる入力チェックはあくまでもユーザーに便宜を与えるものであり、ここでOKになったからといって、サーバ側のプログラム(Perl/PHP/JSP/ASPなど)での入力チェックが必須であることは言うまでもありません。 ※ また、実際には、JavaScriptでlengthチェックを行ったり、「フリガナ」に使用できる文字を限定させたりする処理を追加することは可能ですが、冗長になり、サンプルとしては不適なた
― .NET Frameworkがサポートする正規表現クラスを徹底活用する ―:基礎解説 スマートな文字列処理のための 正規表現入門(前編)(1/4 ページ) 正規表現をうまく使いこなせば、数十行のコードにも匹敵するテキスト処理をたった数行で実現することも可能だ。今回はまず、正規表現の基礎について解説する。 連載目次 正規表現とは 検索キーワードを指定するとき、スペースの有無や長音の有無などで面倒な思いをしたことはないだろうか。目的のキーワードが明確に分かっていればいいのだが、「サーバサイド」か「サーバーサイド」か、「WindowsXP」か「Windows XP」か(“XP”の直前に半角スペースを含むかどうか)が分からなければ、両方検索するはめになってしまう。この種の悩みは、テキスト・エディタで文章を編集しているときや、大量のファイルから目的のキーワードを含むファイルを検索するときなど、何
JavaScript チュートリアル 初級編 JavaScript の基礎 JavaScript の第一歩 JavaScript の構成要素 JavaScript オブジェクト入門 JavaScript ガイド 入門編 文法とデータ型 制御フローとエラー処理 ループとイテレーター 関数 式と演算子 数と日付 テキスト処理 正規表現 インデックス付きコレクション キー付きコレクション オブジェクトを利用する Using classes プロミスの使用 JavaScript 型付き配列 イテレーターとジェネレーター メタプログラミング JavaScript モジュール 中級編 クライアントサイド JavaScript フレームワーク クライアントサイド Web API Language overview JavaScript のデータ構造 等値比較と同一性 プロパティの列挙可能性と所有権 クロ
ということで、今回はJavaScriptのパターンマッチネタです。 比較するメソッドとしてmatch、search、test、exec、の4つを取り上げます。 それぞれ性質が異なるので、使う場合は注意が必要です。 比較のために、以下のようなサンプルを作ってみました。 <script type="text/javascript"> <!-- // match()の場合 function hoge1() { base_str = "オッス。おら Tawabagani。" + "友人の Abeshiganiと間違えないでくれよな。"; match_pattern = /\w+?gani/g; r = base_str.match(match_pattern); if (r) { for(var i=0; i<r.length; i++) { alert(r[i]); } } else { al
名前の「指示」と同一性について、クリプキの講義を書籍化したもの。 もとが講義であるために、厳密な論証が続くというわけではなく、口語体での説明が書かれている。それ故の読みやすさと読みにくさがある。 フレーゲ−ラッセルから続く「記述説」に対する反論がなされていくわけだが、それに先だって、まず「アプリオリ」「アポステリオリ」と「必然的」「偶然的」といった概念の整理がなされる。 クリプキは、ともすると同義語と使われがちな「アプリオリ」と「必然的」という言葉は区別されなければならないという。「アプリオリ」とは認識に関わり、「必然的」とは一種の形而上学に関わる語である。アプリオリに知られる偶然的な知識もあれば、アポステリオリに知られる必然的な知識もある。後者の代表的なものは数学についての知識である。数学の定理の証明などは、アプリオリに知られることはない。計算などを通じて、アポステリオリに知られる。例え
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く