警告:これは、通常のルールの作成方法を詳しく説明した記事ではありません。
1つの正規表現
- 時間:時間00-23
'/(^[0-1][0-9]$)|(^2[0-3]$)/';
- 時間:分00-59
'/^[0-5][0-9]$/';
- 携帯電話番号:1の始まり、2番目は3または4または5または7または8、最後の9桁は終わり
'/^1[3|4|5|7|8]\d{9}/';
- メールボックス
'/^[\w-]{4,}@[\w]+\.(com|cn)$/';
2、PHPの通常の方法
preg_match()
戻り値は0または1に一致し、最初の一致後に検索が停止します。$str = 'abcdef'; //用法一,根据返回值判断字符串是否符合正则 echo preg_match('/abc/',$str); #输出1 //用法二,传入第三个参数,取址生成一个数组。 //一般来说,我们只关心匹配到的数组第0项,为正则匹配到的结果。 //如果使用括号,会依次拆分匹配项。 preg_match('/(bc)(de)/',$str,$match); print_r($match); //Array ( [0] => bcde [1] => bc [2] => de )
preg_match_all()
上記と同様に、戻り値は0またはnに一致します。$str = 'ABCdeABC'; //用法一 echo preg_match_all('/ABC/',$str);#输出2 //用法二,match变成二维数组。 preg_match_all('/ABC(de)?/',$str,$match); print_r($match); //[['ABCdeABC','ABC'],['de',null]]
preg_replace()
置き換えられた文字列を返す$str = 'ABCdeABC'; echo preg_replace('/ABC/','abc',$str);# 输出abcdeabc
preg_grep()
一致した配列を返します$arr1 = ['ABCdeABC','abc','ABC']; $arr2 = preg_grep('/ABC/',$arr1); print_r($arr2); //Array ( [0] => ABCdeABC [2] => ABC )
三、JS定期執筆
- 文法的な直接性
/pattern/attributes
var str = 'abc123de'; /[a-z]/g; // 注意,
- RegExpオブジェクトを作成するための構文
new RegExp(pattern, attributes)
var regexp = new RegExp(/[a-z]/,'g');
注1:JSの規則性は、一重引用符または二重引用符で囲む必要はありません。
注2:属性
iについては、大文字と小文字を区別しないマッチングを実行してください。
gグローバルマッチを実行します(最初のマッチが見つかった後に停止するのではなく、すべてのマッチを見つけます)。
m複数行のマッチングを実行します。
4、JS通常方式
regexp.test()
文字列が正規表現に準拠しているかどうかに関係なく、検索はtrueまたはfalseを返します/abc/i.test('ABCdeABC'); //true
regexp.exec()
一致し、ない場合は戻りnull
ます。var str = "ABCdeABC"; var regexp = new RegExp("ABC","g"); var result; while ((result = regexp.exec(str)) != null) { console.log(result,result.index,regexp.lastIndex); }
5、JS文字列メソッドの規則性
str.search()
検索し、-1を返さずに、通常に一致する最初の部分文字列の位置を返します。var str = 'ABCdeABC'; str.search(/BC/);//返回1 //如果明确搜索什么,还是用indexOf('BC')吧...
str.match()
一致し、一致した配列を返しnull
ます。それ以外の場合はを返します。str.match(/abc/ig);//返回 ['ABC','ABC']
str.replace()
置換、置換された文字列を返しますstr.replace(/abc/i,"");//返回deabc str.replace(/abc/ig,"");//返回de //隐藏手机号中间四位 '15388880131'.replace(/(\d{3})(\d{4})(\d{4})/,"$1****$3"); //返回153****0131,这里$1,$2,$3分别代表3个()的匹配项。