1. コンストラクターメソッド
var reg = new RegExp ( 'd' , 'gi' ) ;
2. リテラルメソッド
var reg = / d / gi ;
修飾子には 3 種類あります: i, g, m
順序を問わず同時に出現できます (つまり、 gi
ig
と同じです)。以下の手順を参照してください。
修飾子 | 説明する |
---|---|
私 | 大文字と小文字の一致を無視する |
g | グローバル マッチング、つまり 1 つの一致と最後まで一致し続ける |
メートル | 複数行のマッチング。つまり、改行に遭遇しても最後までマッチングが停止しません。 |
シンボル | 効果 |
---|---|
意味の変更として、つまり、「」の後の文字は通常、元の意味に従って解釈されません。たとえば、/b/ が b の前に追加されると、文字「b」と一致します。変更の意味は、単語の境界に一致することです。 または、正規表現関数文字の復元 (" " はその前のメタ文字に 0 回以上一致します)、/a / は a、aa、aaa に一致します。"" を追加すると、/a*/ は "a *" にのみ一致します。 | |
^ | 入力または行の先頭に一致します。 /^a/ は「an A」に一致しますが、「An a」には一致しません。 |
$ | 入力または行末と一致します。/a$/ は「An a」と一致しますが、「an A」とは一致しません。 |
。 | 改行とターミネータを除く任意の 1 文字と一致します |
* | 先行するメタキャラクターと 0 回以上一致します。/ba*/ は b、ba、baa、baaa と一致します。 |
+ | 先行するメタキャラクターと 1 回以上一致します。/ba+/ は、ba、baa、baaa と一致します。 |
? | 前のメタキャラクターと 0 回または 1 回一致します。/ba?/ は b,ba と一致します。 |
(×) | x を照合し、x を $1...$9 という名前の変数に保存します |
× | y |
{n} | n 回正確に一致 |
{n,} | n 回以上一致 |
{n,m} | nm 回の一致 |
[xyz] | 文字セット (文字セット)。このセット内の任意の文字 (またはメタ文字) と一致します。 |
[^xyz] | このセット内のどの文字にも一致しません |
[az] | 任意の文字 [] は任意の文字を表すことができます |
[^az] | ^ 文字以外の [] は例外を表します |
[b] | バックスペース文字と一致します |
b | 単語の境界を一致させる |
B | 非境界単語と一致する |
cX | ここで、X は制御文字で、/cM/ は Ctrl-M に一致します。 |
d | 英数字、/d/ = /[0-9]/ と一致します。 |
D | 英数字以外の文字 /D/ = /[^0-9]/ と一致します。 |
n | 改行文字と一致します |
r | キャリッジリターンと一致します |
f | フォームフィードの一致 |
s | n、r、f、t、v などの空白文字と一致します。 |
S | /[^nfrtv]/ に等しい、空白以外の文字と一致します。 |
t | タブ文字と一致する |
v | 二重タブ文字と一致します |
w | [w] などのアンダースコアを含む、単語を形成できる文字 (英数字、これは数字を含む私の意訳) と一致します。これは、「$5.98」の 5 と一致します。これは [a-zA-Z0-9 と同等です。 】 |
W | 「$5.98」の $ に一致する [W] など、単語を構成できない文字と一致します。これは [^a-zA-Z0-9] と同等です。 |
NUL文字と一致します |
ゼロ幅アサーションは、一部のコンテンツ (ただし、これらのコンテンツは含まない) の前後のものを検索するために使用されます。つまり、特定の条件 (つまり、アサーション) を満たす必要がある位置を指定するためにb,^,$
のように使用されます。ゼロ幅アサーションとも呼ばれます
先行主張 | ゼロ幅の正の先読みアサーション(?=表达式) これは、式の前の位置を照合することを意味します。 | たとえば、 [az]*(?=ing) 料理の歌で Cook と sing を一致させることができます。 |
注: 先読みアサーションの実行手順は次のとおりです。まず、一致する文字列の右端から最初の ing (つまり、先読みアサーションの式) を見つけ、次に、一致できない場合は前の式と一致します。 matched, continue 2 番目の ing を検索し、2 番目の ing の前の文字列と一致する場合は一致します。
事後主張 | ゼロ幅ポストルックバック アサーション(?<=表达式) これは、式の後の位置を照合することを意味します。 | たとえば(?<=abc).* abcdefg の defg と一致します。 |
注: 遅延アサーションは先読みアサーションの逆です。その実行手順は次のとおりです。まず、一致する文字列の左端から最初の abc (つまり、先読みアサーションの式) を見つけます。 ) 次に、次の式と一致します。一致できない場合は、2 番目の abc の検索を続け、2 番目の abc の後の文字列と一致します。たとえば、 (?<=abc).*
、abcdefg の代わりに abcdefgabc の defgabc と一致します。
負のゼロ幅アサーション | (?!表达式) も幅ゼロの位置に一致しますが、この位置の「アサーション」は式の逆の値をとります。たとえば、 (?!表达式) 式が成立しない場合の位置を表します。 、この位置に一致します。 ; 式が true の場合、一致しません。 同様に、負のゼロ幅アサーションには「first」と「last (?<!表达式) の 2 つのタイプがあります。 (?<!表达式) |
(?<!表达式)
(?!表达式)
括弧を使用して一致する文字列をラップし、置換値で $1 式を使用して現在一致する値を取得します。たとえば、複数の括弧がある場合は、$1、$2、$3 を使用して取得できます。対応する値をすべて置き換えた後、これが最終的に必要なデータになります。
たとえば、次は検索ボックスの正規表現です。これは、HTML 構造内のすべてのclass
属性と一致します。
className = "([^0-9]+)"
それなら交換できます
className = { { $1 } }
そうすればそうなります
className = "xxx" //转化为
className = { { xxx } }
1. RegExpオブジェクトに関連するメソッド
メソッド名 | 使用シナリオ | 戻り値 | 例 |
---|---|---|---|
テスト | 一致するかどうかを判断する | 真か偽か | /d/.test('えのやお 2019') |
テスト | match と同様の一致結果を返します。 | 配列またはnull | /d/.exec('えのやお 2019') |
2. 文字列オブジェクト関連のメソッド
メソッド名 | 使用シナリオ | 戻り値 | 例 |
---|---|---|---|
マッチ | 非グローバル条件では、一致する結果が exec によって返される結果と一致し、グローバル条件では、一致するすべての結果が一度に返されます。 | 配列またはnull | 「えのやお 2019」.match(/d/) |
交換する | 文字列を別の文字列に置き換えるか、通常の一致する文字列を別の部分文字列に置き換えます | 配列またはnull | 'えのやお 2019'.replace(/d/, '2019') |
検索 | 最初に一致した部分文字列の位置を検索し、インデックス値を返します。そうでない場合は、-1 を返します。 | 索引 | 'えのやお 2019'.search(/d/, '2019') |
スプリット | 合意された文字列に従って配列を分割し、文字列または通常の文字列を受け入れます | 索引 | 'えのやお 2019'.search(/d/, '2019') |