正規表現の実装手順

php中世界最好的语言
リリース: 2017-12-02 11:08:06
オリジナル
1867 人が閲覧しました

今回は正規表現の構文を紹介します。正規表現とは、テキストを検索するときに一致する1つまたは複数の文字列を記述するテキストのパターンです。 1. 正規表現の基本構文


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

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

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

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

他の記号には「*」、「+」、「?」があり、これらは 1 つの文字または一連の文字が繰り返し現れる回数を表します。それらはそれぞれ、「なしまたは
以上」、「1回以上」、「なしまたは1回」を意味します。以下にいくつかの例を示します:

"ab*": 文字列に a の後に 0 個または複数の b が続くことを示します。 ("a", "ab", "abbb",...);
"ab+": 文字列に少なくとも 1 つ以上の b が続くことを示します。 a 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]%":表示一个百分号前有一位的数字;",[a-zA-Z0-9]$":表示一个字符串以一个逗号后面跟着一个字母或数字结束。
ログイン後にコピー

角括弧内で「^」を使用して不要な文字を示すこともできます。「^」は角括弧内の最初の文字に含める必要があります。括弧。 (例: "%[^a-zA-Z]%" は、2 つのパーセント記号の間に文字を含めないことを意味します)。

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

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

2. 正規表現検証はテキストボックスの入力を制御します


1.只能输入数字和英文的:
<input onkeyup="value=value.replace(/[\W]/g,&#39;&#39;) " onbeforepaste="clipboardData.setData(&#39;text&#39;,clipboardData.getData(&#39;text&#39;).replace(/[^\d]/g,&#39;&#39;))" ID="Text1" NAME="Text1">
2.只能输入数字的:
<input onkeyup="value=value.replace(/[^\d]/g,&#39;&#39;) " onbeforepaste="clipboardData.setData(&#39;text&#39;,clipboardData.getData(&#39;text&#39;).replace(/[^\d]/g,&#39;&#39;))" ID="Text2" NAME="Text2">
3.只能输入全角的:
<input onkeyup="value=value.replace(/[^\uFF00-\uFFFF]/g,&#39;&#39;)" onbeforepaste="clipboardData.setData(&#39;text&#39;,clipboardData.getData(&#39;text&#39;).replace(/[^\uFF00-\uFFFF]/g,&#39;&#39;))" ID="Text3" NAME="Text3">
4.只能输入汉字的:
<input onkeyup="value=value.replace(/[^\u4E00-\u9FA5]/g,&#39;&#39;)" onbeforepaste="clipboardData.setData(&#39;text&#39;,clipboardData.getData(&#39;text&#39;).replace(/[^\u4E00-\u9FA5]/g,&#39;&#39;))" ID="Text4" NAME="Text4">
ログイン後にコピー

3. 正規表現の一般的な応用例の説明

************** ************************************************* * ************

//校验是否全由数字组成
/^[0-9]{1,20}$/
^ 表示打头的字符要匹配紧跟^后面的规则
$ 表示打头的字符要匹配紧靠$前面的规则
[ ] 中的内容是可选字符集
[0-9] 表示要求字符范围在0-9之间
{1,20}表示数字字符串长度合法为1到20,即为[0-9]中的字符出现次数的范围是1到20次。/^ 和 $/成对使用应该是表示要求整个字符串完全匹配定义的规则,而不是只匹配字符串中的一个子串。
ログイン後にコピー
rreeee

********************************* ** *********************************************

** ********************************************** **** ****************************

//校验用户姓名:只能输入1-30个以字母开头的字串
/^[a-zA-Z]{1,30}$/
ログイン後にコピー

**************** ******** ***************************************** ********* *********

//校验密码:只能输入6-20个字母、数字、下划线
/^(\w){6,20}$/
\w:用于匹配字母,数字或下划线字符
ログイン後にコピー

***************************** ************* ************************************ ******

//校验普通电话、传真号码:可以“+”或数字开头,可含有“-” 和 “ ”
/^[+]{0,1}(\d){1,3}[ ]?([-]?((\d)|[ ]){1,12})+$/
\d:用于匹配从0到9的数字;
“?”元字符规定其前导对象必须在目标对象中连续出现零次或一次
可以匹配的字符串如:+123 -999 999 ; +123-999 999 ;123 999 999 ;+123 999999等
ログイン後にコピー

****** ********************************** **************** *************************

//校验URL
/^http[s]{0,1}:\/\/.+$/ 或 /^http[s]{0,1}:\/\/.{1,n}$/ (表示url串的长度为length(“https://”) + n )
\ / :表示字符“/”。
. 表示所有字符的集
+ 等同于{1,},就是1到正无穷吧。
ログイン後にコピー

私これらの事例を読んだ後は、この方法を習得したと信じてください。さらに興味深い情報については、php 中国語 Web サイトのその他の関連記事に注目してください。

関連書籍:

Js を使用して HTTP Cookie を操作するための実装手順


ローカル Web ストレージの詳細な紹介

CSS のテキストのフォント色の設定方法

以上が正規表現の実装手順の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート