ホームページ ウェブフロントエンド jsチュートリアル JavaScript における正規表現の意味と使用法

JavaScript における正規表現の意味と使用法

Nov 09, 2017 pm 04:52 PM
javascript js 表現

正規表現はご存知の方も多いと思いますが、一見すると何のパターンもなく、ただ色々な特殊な記号が羅列されているように感じられ、「難しそう」という第一印象を持たれる方も多いと思います。完全に混乱しています。実際、正規表現はあなたが思っているほど難しくありません。今日は JavaScript 正規表現を簡単に理解してみましょう。

1. 正規表現とは

正規表現とは、製品を作るために金型を使用するのと同じように、一連の文字列を照合するために使用される特別な文字列パターンです。モールドは、ルールに一致する文字を照合するルールを定義します。

正規表現 (正規表現) は、文字列に特定の部分文字列が含まれているかどうかを確認したり、一致する部分文字列を置き換えたり、条件の特定の部分文字列に一致する文字列から抽出したりするために使用できる文字列一致パターン (パターン) を記述します。 。

端的に言うと、正規表現は文字列を処理するために使用されます。これを使用して、いくつかの複雑な文字列を処理できます。表 2.

正規表現のルール

1.1 通常の文字 文字、数字、漢字、下線付きの行、および後の章には特別な定義の句読点記号はありません。それが「通常の文字」です。式内の通常の文字は、文字列と一致する場合、同じ文字と一致します。

例 1: 式「c」、文字列「abcde」と一致する場合、一致結果は成功、一致した内容は「c」、一致した位置は 2 から始まり 3 で終わります。 (注: 添字が 0 から始まるか 1 から始まるかは、現在の

プログラミング言語

によって異なる場合があります)


例 2: 式 "bcd" が文字列 "abcde" と一致する場合、一致結果は次のようになります: success ;一致した内容は次のとおりです: "bcd"; 一致する位置は 1 から始まり 4 で終わります。


3.

正規表現の特殊文字


文字の意味

意味の変更として、通常、「」の後の文字は元の意味に従って解釈されません。たとえば、/b/ は、b の前にバックスラッシュが追加された場合、文字「b」と一致します。 / は単語の境界の意味を変更します。
-または-
正規表現の関数文字の削減。たとえば、「*」がその前のメタキャラクターに 0 回以上一致する場合、/a*/ は a、aa、aaa に一致し、「" を追加した後は /a* / のみに一致します」抹茶*"。

^ は入力または行の先頭に一致します。 /^a/ は「An a」ではなく「an A」に一致します。
$ は入力または行の末尾に一致します。 /a$/ は「An a」に一致します。 "An a" ではありません "an A" と一致します
* は先行するメタキャラクターに 0 回以上一致します、/ba*/ は b、ba、baa、baaa に一致します
+ は先行するメタキャラクターに 1 回以上一致します、/ba*/ はba, baa,baaa に一致します
? は前のメタ文字に 0 回または 1 回一致します、/ba*/ は b,ba に一致します
(x) は x に一致し、x を $1...$9 という名前の変数に保存します
x|y は x に一致しますまたは y
{n} は n 回正確に一致します
{n,} は n 回以上一致します
{n,m} は n-m 回一致します
[xyz] 文字セット (文字セット)、このセット (またはメタ文字) 内の任意の文字と一致します
[^xyz] はこのセット内のどの文字にも一致しません
[b] はバックスペース文字に一致します
b は単語の境界に一致します
B は非単語の境界に一致します
cX ここで、X は制御文字、/cM/ は Ctrl に一致します-M
d は英数字に一致します。 /d/ = /[0-9]/
D は英数字以外の文字に一致します。 /D/ = /[^0-9]/
n は改行文字に一致します
r復帰文字に一致します。
s は、n、r、f、t、v などの空白文字に一致します。
S は、/[^nfrtv]/ に等しい非空白文字に一致します。
t は、タブ文字に一致します。
v二重タブ文字と一致します
w は、アンダースコアを含む、単語を形成できる文字 (英数字、これは数字を含む私の意訳です) と一致します ([w] は、「$5.98」の 5 と一致します。これは、[a に等しい) -zA -Z0-9]
W は単語を構成できない文字に一致します。たとえば、[W] は「$5.98」の $ に一致します。これは [^a-zA-Z0-9] に相当します。

4. 正規表現の基本文法

2 つの特殊記号 '^' と '$'。それらの機能は、それぞれ文字列の始まりと終わりを示すことです。

例は次のとおりです。

"^The": "The" で始まるすべての文字列 ("There"、"The cat" など) を意味します。

"of death$": " で終わるすべての文字列を意味します。 of絶望" 文字列;

"^abc$": "abc" で始まり "abc" で終わる文字列を表します - 笑、"abc" 自体のみ;

"notice": "notice" を含む任意の文字列を表します。

最後の例と同様に、2 つの特殊文字を使用しない場合は、検索する文字列が検索文字列のいずれかの部分にあることを示しており、その文字列を先頭に配置しているわけではありません。

他の記号には「*」、「+」、「?」があり、これらは 1 つの文字または一連の文字が繰り返し現れる回数を表します。

それらはそれぞれ、「なしまたはそれ以上」、「1 回またはそれ以上」、「なしまたは 1 回」を意味します。


ここにいくつかの例があります:

"ab*": 文字列に a の後に 0 個または複数の b が続くことを示します。 ("a", "ab", "abbb",...);

"ab+": 文字列に少なくとも 1 つ以上の b が続くことを示します。 a の後に 0 個または 1 個の b が続く;

"a?b+$": 文字列の末尾に 0 個または 1 個の a の後に 1 個または複数個の b が続くことを意味します。

中括弧で囲まれた範囲を使用して、繰り返しの範囲を示すこともできます。

"ab{2}": 文字列に a の後に 2 つの b が続くことを示します ("abb")。

"ab{2,}": 文字列の後に少なくとも 2 つの b が続くことを示します。

"ab{3,5}": 文字列に a の後に 3 ~ 5 個の b が続くことを示します。

範囲の下限を指定する必要があることに注意してください (例: "{,2}" の代わりに "{0,2}")。

また、「*」、「+」、「?」が「{0,}」、「{1,}」、「{0,1}」と同等であることに気づいたかもしれません。

「or」演算を意味する '|' もあります。

"hi|hello": 文字列に "hi" または "hello" があることを意味します。

"(b|cd)ef": 「bef」または「cdef」を意味します;

「(a|b)*c」: 「a」と「b」の後に「c」が続く文字列を表します。'

"a.[0-9]": 文字列に「a」の後に任意の文字と数字が続くことを示します。

"^.{3}$": 任意の 3 文字の文字列 ( 3文字数);

角括弧は、特定の文字が文字列内の特定の位置に出現できることを示します。

"[ab]": 文字列に "a" または "b" ("a|b" と同等) があることを示します。

"[a-d]": 文字列に小文字の「a」から「d」のいずれかが含まれていることを示します (「a|b|c|d」または「[abcd]」と同等);

"^ [a- zA-Z]": 文字で始まる文字列を表します。

"[0-9]%": パーセント記号の前に 1 桁の数字を表します。

",[a-zA-Z0 -9]$ ": 文字列がコンマで終わり、その後に文字または数字が続くことを示します。

角括弧内で「^」を使用して、不要な文字が角括弧内の最初の文字であることを示すこともできます。

(例: "%[^a-zA-Z]%" は、2 つのパーセント記号の間に文字を含めないことを意味します)。

これをそのまま表現するには、これらの文字「^.$()|*+?{」の前にシフト文字 '' を追加する必要があります。

角括弧内ではエスケープ文字は必要ないことに注意してください。

まとめ

実は、正規表現を理解してしまうと、正規表現で使われる関連文字はそれほど多くないことが分かります。覚えるのは難しくありませんが、理解するのは難しくありません。唯一の難点は、組み合わせた後の読みやすさが悪く、理解するのが簡単ではないことです。簡単な正規表現を理解し、日常の開発のニーズを満たす簡単な正規表現を作成できるようになります。

関連する推奨事項:

js よく使用される正規表現とは何ですか

JavaScript正規表現ビデオチュートリアル

JavaScript正規表現の定義と紹介

柔軟になる方法JavaScriptを使用する正規表現

以上がJavaScript における正規表現の意味と使用法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

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

AI Clothes Remover

AI Clothes Remover

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

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

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

WebSocket と JavaScript を使用してオンライン音声認識システムを実装する方法 WebSocket と JavaScript を使用してオンライン音声認識システムを実装する方法 Dec 17, 2023 pm 02:54 PM

WebSocket と JavaScript を使用してオンライン音声認識システムを実装する方法 はじめに: 技術の継続的な発展により、音声認識技術は人工知能の分野の重要な部分になりました。 WebSocket と JavaScript をベースとしたオンライン音声認識システムは、低遅延、リアルタイム、クロスプラットフォームという特徴があり、広く使用されるソリューションとなっています。この記事では、WebSocket と JavaScript を使用してオンライン音声認識システムを実装する方法を紹介します。

株価分析に必須のツール: PHP と JS を使用してローソク足チャートを描画する手順を学びます 株価分析に必須のツール: PHP と JS を使用してローソク足チャートを描画する手順を学びます Dec 17, 2023 pm 06:55 PM

株式分析に必須のツール: PHP および JS でローソク足チャートを描画する手順を学びます。特定のコード例が必要です。インターネットとテクノロジーの急速な発展に伴い、株式取引は多くの投資家にとって重要な方法の 1 つになりました。株価分析は投資家の意思決定の重要な部分であり、ローソク足チャートはテクニカル分析で広く使用されています。 PHP と JS を使用してローソク足チャートを描画する方法を学ぶと、投資家がより適切な意思決定を行うのに役立つ、より直感的な情報が得られます。ローソク足チャートとは、株価をローソク足の形で表示するテクニカルチャートです。株価を示しています

推奨: 優れた JS オープンソースの顔検出および認識プロジェクト 推奨: 優れた JS オープンソースの顔検出および認識プロジェクト Apr 03, 2024 am 11:55 AM

顔の検出および認識テクノロジーは、すでに比較的成熟しており、広く使用されているテクノロジーです。現在、最も広く使用されているインターネット アプリケーション言語は JS ですが、Web フロントエンドでの顔検出と認識の実装には、バックエンドの顔認識と比較して利点と欠点があります。利点としては、ネットワーク インタラクションの削減とリアルタイム認識により、ユーザーの待ち時間が大幅に短縮され、ユーザー エクスペリエンスが向上することが挙げられます。欠点としては、モデル サイズによって制限されるため、精度も制限されることが挙げられます。 js を使用して Web 上に顔検出を実装するにはどうすればよいですか? Web 上で顔認識を実装するには、JavaScript、HTML、CSS、WebRTC など、関連するプログラミング言語とテクノロジに精通している必要があります。同時に、関連するコンピューター ビジョンと人工知能テクノロジーを習得する必要もあります。 Web 側の設計により、次の点に注意してください。

WebSocket と JavaScript: リアルタイム監視システムを実装するための主要テクノロジー WebSocket と JavaScript: リアルタイム監視システムを実装するための主要テクノロジー Dec 17, 2023 pm 05:30 PM

WebSocketとJavaScript:リアルタイム監視システムを実現するためのキーテクノロジー はじめに: インターネット技術の急速な発展に伴い、リアルタイム監視システムは様々な分野で広く利用されています。リアルタイム監視を実現するための重要なテクノロジーの 1 つは、WebSocket と JavaScript の組み合わせです。この記事では、リアルタイム監視システムにおける WebSocket と JavaScript のアプリケーションを紹介し、コード例を示し、その実装原理を詳しく説明します。 1.WebSocketテクノロジー

PHP および JS 開発のヒント: 株価ローソク足チャートの描画方法をマスターする PHP および JS 開発のヒント: 株価ローソク足チャートの描画方法をマスターする Dec 18, 2023 pm 03:39 PM

インターネット金融の急速な発展に伴い、株式投資を選択する人がますます増えています。株式取引では、ローソク足チャートは一般的に使用されるテクニカル分析手法であり、株価の変化傾向を示し、投資家がより正確な意思決定を行うのに役立ちます。この記事では、PHP と JS の開発スキルを紹介し、株価ローソク足チャートの描画方法を読者に理解してもらい、具体的なコード例を示します。 1. 株のローソク足チャートを理解する 株のローソク足チャートの描き方を紹介する前に、まずローソク足チャートとは何かを理解する必要があります。ローソク足チャートは日本人が開発した

JavaScript と WebSocket を使用してリアルタイムのオンライン注文システムを実装する方法 JavaScript と WebSocket を使用してリアルタイムのオンライン注文システムを実装する方法 Dec 17, 2023 pm 12:09 PM

JavaScript と WebSocket を使用してリアルタイム オンライン注文システムを実装する方法の紹介: インターネットの普及とテクノロジーの進歩に伴い、ますます多くのレストランがオンライン注文サービスを提供し始めています。リアルタイムのオンライン注文システムを実装するには、JavaScript と WebSocket テクノロジを使用できます。 WebSocket は、TCP プロトコルをベースとした全二重通信プロトコルで、クライアントとサーバー間のリアルタイム双方向通信を実現します。リアルタイムオンラインオーダーシステムにおいて、ユーザーが料理を選択して注文するとき

JavaScript と WebSocket: 効率的なリアルタイム天気予報システムの構築 JavaScript と WebSocket: 効率的なリアルタイム天気予報システムの構築 Dec 17, 2023 pm 05:13 PM

JavaScript と WebSocket: 効率的なリアルタイム天気予報システムの構築 はじめに: 今日、天気予報の精度は日常生活と意思決定にとって非常に重要です。テクノロジーの発展に伴い、リアルタイムで気象データを取得することで、より正確で信頼性の高い天気予報を提供できるようになりました。この記事では、JavaScript と WebSocket テクノロジを使用して効率的なリアルタイム天気予報システムを構築する方法を学びます。この記事では、具体的なコード例を通じて実装プロセスを説明します。私たちは

簡単な JavaScript チュートリアル: HTTP ステータス コードを取得する方法 簡単な JavaScript チュートリアル: HTTP ステータス コードを取得する方法 Jan 05, 2024 pm 06:08 PM

JavaScript チュートリアル: HTTP ステータス コードを取得する方法、特定のコード例が必要です 序文: Web 開発では、サーバーとのデータ対話が頻繁に発生します。サーバーと通信するとき、多くの場合、返された HTTP ステータス コードを取得して操作が成功したかどうかを判断し、さまざまなステータス コードに基づいて対応する処理を実行する必要があります。この記事では、JavaScript を使用して HTTP ステータス コードを取得する方法を説明し、いくつかの実用的なコード例を示します。 XMLHttpRequestの使用

See all articles