よく使われる正規表現のまとめ
正規表現、正規表現とも呼ばれる正規表現。 (英語: Regular Expression、コード内では regex、regexp、または RE と略されることがよくあります)、コンピューター サイエンスの概念。正規表現は、単一の文字列を使用して、特定の構文ルールに一致する一連の単語を記述および照合します。多くのテキスト エディタでは、特定のパターンに一致するテキストを取得および置換するために正規表現がよく使用されます。
正規表現、私のように何回も習ったけどまだ混乱している人はいませんか?そうですね、実は私はまだ十分に練習ができていません。いわゆる過去を振り返り、新しいことを学ぶことができます。今日はこの自慢の正規表現を復習しましょう。
正規表現が必要なのはなぜですか?実際、それはコンピュータが愚かだからです(これは私が言ったことではありません)たとえば、123456@qq.com は、私たちが見ると電子メールアドレスですが、コンピュータはそれを認識しないので、私たちはそれを持っています。コンピュータが理解できるいくつかの言語を使用してルールを作成し、このルールに適合するものをメールボックスに伝えることで、コンピュータは対応するものを見つけるのに役立ちます。したがって、通常のルールは、ログインの検証、指定されたものの検索など、必要な一部の操作を完了するためのルールを設定するために使用されます。あまりにも多くを言うのは冗長なので、直接トピックに進みましょう。
規則性を定義します:
1 var re = new RegExp("a"); //RegExp オブジェクト。パラメータは、作成したいルールです。この方法を使用しなければならない状況があります。これについては後述します。
2 var re = /a/; // パフォーマンスを向上させるために、省略メソッドを使用することをお勧めします。空にすることはできません。
1 test(): 文字列内の一致を検索します。通常のコンテンツは、見つかった場合は true を返し、それ以外の場合は false を返します。
使用法: Regular.test (string)
例: 数値であるかどうかを判断します
var str = '374829348791';
var re = /D/; // D は非数字を表します
if( re.test(str) ){ // 文字列内に非数字が見つかったことを意味します。
alert('すべての数字ではありません');
}else{
alert('すべての数字');
}
正規表現にはさまざまな意味を表す記号がたくさんあります。上記の D や以下のようなさまざまなルールを定義できます:
s: スペース
S: 非スペース
d: 数字
D: 非数字
w: 文字 (文字、数字、 underscore_ )
W: 文字以外の例: 数字ではない文字はありますか? (以下は例に基づいてよく使用される文字について説明し、最後にまとめます。)
2 search(): 文字列内で検索通常のルールに準拠するコンテンツの場合は、その出現位置を返します (0 から始まり、複数の文字が一致した場合は最初の文字の位置のみが返されます)。検索が失敗した場合は -1 が返されます。
使用法: 文字 String.search(正規)
文字列内の複合正規表現の内容を検索します。大文字と小文字を無視: i——ignore (通常はデフォルトで大文字と小文字が区別されます。大文字と小文字が区別されない場合は、通常の最後に識別子 i を追加します)
例: 文字列内で文字 b を検索すると、次のようになります。大文字と小文字は区別されません
var str = 'abcdef';
var re = /B/i;
//var re = new RegExp('B','i'); と書くこともできます。このように
alert( str .search(re) ); // 1
3 match() は文字列内の複合ルールの内容を検索します。検索が成功すると、その内容が返されます。配列の形式。失敗した場合は null が返されます。
使用法: String.match (正規)
量指定子: + 少なくとも 1 つの一致が不確実な回数発生します (一致とは検索を意味します)
グローバル一致: g——global (正規のデフォルト、複合物が検索ルールの内容で検索が終了します)
例: 指定された形式ですべての数値を検索し、次のように 123、54、33、879 を検索します
var str = 'haj123sdk54hask33dkhalsd879';
var re = /d+/ g; // 毎回少なくとも 1 つの数値を照合し、グローバルに照合しない場合は、数値 123 が見つかった時点で停止します。グローバル マッチングでは、最初から最後までルールに一致するものが検索され、123 のみが表示されます。プラス記号がない場合、一致結果は 1、2、3、5、4、3、3、879 になります。これは、プラス記号を使用すると、毎回少なくとも 1 つの一致する数字が存在することになります。
alert( str.match(re) ); // [123, 54, 33, 879]
4 replace(): 通常のパターンに一致する文字列を検索して置換します対応する文字列 String を使用します。置き換えたコンテンツを元に戻します。
使用法: String.replace (通常の新しい文字列/コールバック関数) (コールバック関数では、最初のパラメーターは毎回正常に一致する文字を参照します)
|: または を意味します。
例子:敏感词过滤,比如 我爱北京天安门,天安门上太阳升。------我爱*****,****上太阳升。即北京和天安门变成*号,
一开始我们可能会想到这样的方法:
var str = "我爱北京天安门,天安门上太阳升。";
var re = /北京|天安门/g; // 找到北京 或者天安门 全局匹配
var str2 = str.replace(re,'*');
alert(str2) //我爱**,*上太阳升
//这种只是把找到的变成了一个*,并不能几个字就对应几个*。
要想实现几个字对应几个*,我们可以用回调函数实现:
var str = "我爱北京天安门,天安门上太阳升。";
var re = /北京|天安门/g; // 找到北京 或者天安门 全局匹配
var str2 = str.replace(re,function(str){
alert(str); //用来测试:函数的第一个参数代表每次搜索到的符合正则的字符,所以第一次str指的是北京 第二次str是天安门 第三次str是天安门
var result = '';
for(var i=0;i result += '*'; } return result; //所以搜索到了几个字就返回几个* }); alert(str2) //我爱*****,***上太阳升 //整个过程就是,找到北京,替换成了两个*,找到天安门替换成了3个*,找到天安门替换成3个*。 replace是一个很有用的方法,经常会用到。 正则中的字符 ():,小括号,叫做分组符。就相当于数学里面的括号。如下: var str = '2013-6-7'; var re1 = /\d-+/g; // 全局匹配数字,横杠,横杠数量至少为1,匹配结果为: 3- 6- var re1 = /(\d-)+/g; // 全局匹配数字,横杠,数字和横杠整体数量至少为1 3-6- var re2 = /(\d+)(-)/g; // 全局匹配至少一个数字,匹配一个横杠 匹配结果:2013- 6- 同时,正则中的每一个带小括号的项,都叫做这个正则的子项。子项在某些时候非常的有用,比如我们来看一个栗子。 例子:让2013-6-7 变成 2013.6.7 var str = '2013-6-7'; var re = /(\d+)(-)/g; str = str.replace(re,function($0,$1,$2){ //replace()中如果有子项, //第一个参数:$0(匹配成功后的整体结果 2013- 6-), // 第二个参数 : $1(匹配成功的第一个分组,这里指的是\d 2013, 6) //第三个参数 : $1(匹配成功的第二个分组,这里指的是- - - ) return $1 + '.'; //分别返回2013. 6. }); alert( str ); //2013.6.7 //整个过程就是利用子项把2013- 6- 分别替换成了2013. 6. 最终弹出2013.6.7 match方法也会返回自己的子项,如下: var str = 'abc'; var re = /(a)(b)(c)/; alert( str.match(re) ); //[abc,a,b,c]( 返回的是匹配结果 以及每个子项 当match不加g的时候才可以获取到子项的集合) [] : 表示某个集合中的任意一个,比如 [abc] 整体代表一个字符 匹配 a b c 中的任意一个,也可以是范围,[0-9] 范围必须从小到大 。 [^a] 整体代表一个字符 :^写在[]里面的话,就代表排除的意思 例子:匹配HTML标签 比如
var re = /]+>/g; // 左括弧の間にある少なくとも 1 つの右括弧以外のコンテンツと一致します (タグ内に属性などがあるため)。右括弧に一致します var re = //g // 左括弧の中央にある少なくとも 1 つの文字または文字以外のコンテンツと一致し、次に右括弧に一致します // 実際には、これは、左括弧を見つけることです。その後、中央に少なくとも 1 つのコンテンツが存在する可能性があります。右括弧が見つかった場合、それはラベルを意味します。 : 任意の文字
: 実数点
b : 独立部分 (開始、終了、スペース)
B : 非独立部分
最後の 2 つを見てみましょう:
var str = 'onetwo';var str2 = "one two";var re = /oneb/; // e はその後独立している必要があり、開始、スペース、または終了にすることができますalert( re. test (str) ); //falsealert( re.test(str2) );//true
例: クラス名を使用してノードを取得する関数を作成します:
これの前に関数:
function getByClass(parent,classname){if(parent.getElementsByClassName){returnparent.getElementsByClassName(classname);}else{var results = new Array ();//クラス boxvar elems =parent.getElementsByTagName("*"); で取得したすべての要素を格納するために使用されますif(elems[i].className==classname){ results.push(elems[i]); } } return results; } } 実際たとえば、タグ内に 2 つのクラスがある場合、または
for(var i =0;i
以上がよく使用される正規表現の例をいくつか共有しますの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

JavaScriptコアデータ型は、ブラウザとnode.jsで一貫していますが、余分なタイプとは異なる方法で処理されます。 1)グローバルオブジェクトはブラウザのウィンドウであり、node.jsのグローバルです2)バイナリデータの処理に使用されるNode.jsの一意のバッファオブジェクト。 3)パフォーマンスと時間の処理にも違いがあり、環境に従ってコードを調整する必要があります。

javascriptusestwotypesofcomments:シングルライン(//)およびマルチライン(//)

PythonとJavaScriptの主な違いは、タイプシステムとアプリケーションシナリオです。 1。Pythonは、科学的コンピューティングとデータ分析に適した動的タイプを使用します。 2。JavaScriptは弱いタイプを採用し、フロントエンドとフルスタックの開発で広く使用されています。この2つは、非同期プログラミングとパフォーマンスの最適化に独自の利点があり、選択する際にプロジェクトの要件に従って決定する必要があります。

PythonまたはJavaScriptを選択するかどうかは、プロジェクトの種類によって異なります。1)データサイエンスおよび自動化タスクのPythonを選択します。 2)フロントエンドとフルスタック開発のためにJavaScriptを選択します。 Pythonは、データ処理と自動化における強力なライブラリに好まれていますが、JavaScriptはWebインタラクションとフルスタック開発の利点に不可欠です。

PythonとJavaScriptにはそれぞれ独自の利点があり、選択はプロジェクトのニーズと個人的な好みに依存します。 1. Pythonは、データサイエンスやバックエンド開発に適した簡潔な構文を備えた学習が簡単ですが、実行速度が遅くなっています。 2。JavaScriptはフロントエンド開発のいたるところにあり、強力な非同期プログラミング機能を備えています。 node.jsはフルスタックの開発に適していますが、構文は複雑でエラーが発生しやすい場合があります。

javascriptisnotbuiltoncorc;それは、解釈されていることを解釈しました。

JavaScriptは、フロントエンドおよびバックエンド開発に使用できます。フロントエンドは、DOM操作を介してユーザーエクスペリエンスを強化し、バックエンドはnode.jsを介してサーバータスクを処理することを処理します。 1.フロントエンドの例:Webページテキストのコンテンツを変更します。 2。バックエンドの例:node.jsサーバーを作成します。

PythonまたはJavaScriptの選択は、キャリア開発、学習曲線、エコシステムに基づいている必要があります。1)キャリア開発:Pythonはデータサイエンスとバックエンド開発に適していますが、JavaScriptはフロントエンドおよびフルスタック開発に適しています。 2)学習曲線:Python構文は簡潔で初心者に適しています。 JavaScriptの構文は柔軟です。 3)エコシステム:Pythonには豊富な科学コンピューティングライブラリがあり、JavaScriptには強力なフロントエンドフレームワークがあります。


ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

Video Face Swap
完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

人気の記事

ホットツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

Safe Exam Browser
Safe Exam Browser は、オンライン試験を安全に受験するための安全なブラウザ環境です。このソフトウェアは、あらゆるコンピュータを安全なワークステーションに変えます。あらゆるユーティリティへのアクセスを制御し、学生が無許可のリソースを使用するのを防ぎます。

SublimeText3 英語版
推奨: Win バージョン、コードプロンプトをサポート!

PhpStorm Mac バージョン
最新(2018.2.1)のプロフェッショナル向けPHP統合開発ツール
