通常(PHPおよびJS)

警告:これは、通常のルールの作成方法を詳しく説明した記事ではありません。

1つの正規表現

  1. 時間:時間00-23
    '/(^[0-1][0-9]$)|(^2[0-3]$)/';
  2. 時間:分00-59
    '/^[0-5][0-9]$/';
  3. 携帯電話番号:1の始まり、2番目は3または4または5または7または8、最後の9桁は終わり
    '/^1[3|4|5|7|8]\d{9}/';
  4. メールボックス
    '/^[\w-]{4,}@[\w]+\.(com|cn)$/';

2、PHPの通常の方法

  1. 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 )
    
  2. 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]]
    
  3. preg_replace() 置き換えられた文字列を返す
    $str = 'ABCdeABC';
    echo preg_replace('/ABC/','abc',$str);# 输出abcdeabc
    
  4. preg_grep() 一致した配列を返します
    $arr1 = ['ABCdeABC','abc','ABC'];
    $arr2 = preg_grep('/ABC/',$arr1);
    print_r($arr2);
    //Array ( [0] => ABCdeABC [2] => ABC )
    

三、JS定期執筆

  1. 文法的な直接性/pattern/attributes
    var str = 'abc123de';
    /[a-z]/g; // 注意,
    
  2. RegExpオブジェクトを作成するための構文new RegExp(pattern, attributes)
    var regexp = new RegExp(/[a-z]/,'g');
    

    注1:JSの規則性は、一重引用符または二重引用符で囲む必要はありません。
    注2:属性
    iについては、大文字と小文字を区別しないマッチングを実行してください
    gグローバルマッチを実行します(最初のマッチが見つかった後に停止するのではなく、すべてのマッチを見つけます)。
    m複数行のマッチングを実行します。

4、JS通常方式

  1. regexp.test() 文字列が正規表現に準拠しているかどうかに関係なく、検索はtrueまたはfalseを返します
    /abc/i.test('ABCdeABC'); //true
    
  2. 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文字列メソッドの規則性

  1. str.search() 検索し、-1を返さずに、通常に一致する最初の部分文字列の位置を返します。
    var str = 'ABCdeABC';
    str.search(/BC/);//返回1 
    //如果明确搜索什么,还是用indexOf('BC')吧...
    
  2. str.match()一致し、一致した配列を返しnullます。それ以外の場合はを返します。
    str.match(/abc/ig);//返回 ['ABC','ABC']
    
  3. 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个()的匹配项。
    

おすすめ

転載: blog.csdn.net/z772532526/article/details/83378114