zoukankan      html  css  js  c++  java
  • php正则表达式总结

    <?php
    echo 'wj';
    echo '<br>';
    $file = '<td>移动150卡</td><!--<td></td>-->
    <td>广西省南宁市</td>';
    //$pattern = '/<td>[x{4e00}-x{9fa5}]+</td>/u';
    $pattern = '/移动150卡</td><!--<td></td>-->.+<td>广西省南宁市</td>/is';
    if(preg_match($pattern,$file,$pg)){
    print_r($pg);
    }
    
    
    ?>

    $msg = preg_replace("/<style>.+</style>/is", "", $msg); -----删除<style></style>和中间的部分 
    $msg = preg_replace("/<[^>]+>/", "", $msg); -----是删除<>和中间的内容 

    <?php
    echo 'wj';
    echo '<br>';
    /*
    $file = '<td>移动150卡</td><!--<td></td>-->
    <td>广西省南宁市</td>';
    */
    $file ='<td>广西省南宁市</td>';
    $pattern = '/<td>[x{4e00}-x{9fa5}]+</td>/u';
    //$pattern = '/移动150卡</td><!--<td></td>-->.+<td>广西省南宁市</td>/is';
    if(preg_match($pattern,$file,$pg)){
    print_r($pg);
    }
    
    
    ?>

    如果上面的代码不能识别出中文(Array ( [0] => 广西省南宁市 )),是因为test.php文件的编码问题,将test.php文件的编码方式更改为utf-8即可。就匹配成功。


    i (PCRE_CASELESS) 
    如果设定此修正符,模式中的字符将同时匹配大小写字母。 
    s (PCRE_DOTALL) 
    如果设定了此修正符,模式中的圆点元字符(.)匹配所有的字符,包括换行符。没有此设定的话,则不包括换行符。这和 Perl 的 /s 修正符是等效的。排除字符类例如 [^a] 总是匹配换行符的,无论是否设定了此修正符。 

    .表示除了换行符之外的所有符号

    [0-9]+表示一位或者多位的数字

    <?php
    echo 'wj';
    echo '<br>';
    $file = '<td>移动150卡</td><!--<td></td>-->
    <td>广西省南宁市</td>';
    //$pattern = '/<td>[x{4e00}-x{9fa5}]+</td>/u';
    //$pattern = '/移动150卡</td><!--<td></td>-->.+<td>广西省南宁市</td>/is';
    $pattern = '/移动150卡</td><!--<td></td>-->
    <td>.+</td>/i';
    if(preg_match($pattern,$file,$pg)){
    print_r($pg);
    }
    
    
    ?>

     输出Array ( [0] => 移动150卡 广西省南宁市 )

            //强制序列化问题修复--begin
            String str = gson.toJson(ntcInfoVO);
            String regex="\w{3}\s{1}\d{1,2}\,\s{1}\d{4}\s{1}\d{1,2}:\d{1,2}:\d{1,2}\s{1}(AM|PM){1}";
            Pattern pattern = Pattern.compile(regex);
            Matcher matcher = pattern.matcher(str);
            while (matcher.find()) {
                String tmp = matcher.group();
                String  res =convertDateFormate(tmp);
                if (null != tmp && tmp.length() > 0 && null != res) {
                    str = str.replaceAll(tmp, res);
                } else {
                    str = str.replaceAll(tmp, ""); //替换失败的话则替换为空字符串
                }
            }
            //强制序列化问题修复--end
            
            
            /**
         * 将序列化异常的时间值矫正回来
         * @param startDate
         * @return
         */
        private static String convertDateFormate(String date) {
            if (date.length() > 0 && (date.contains("AM") || date.contains("PM"))) {
                SimpleDateFormat sdf = new SimpleDateFormat("MMM d, yyyy K:m:s a",Locale.US);
                Date dateTime = null;
                try {
                    if (date.contains("12:00:00 AM")) {
                        date = date.replace("12:00:00 AM", "00:00:00 AM");
                    }
                    dateTime = sdf.parse(date);
                    SimpleDateFormat sdf2 = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
                    return sdf2.format(dateTime);
                } catch (ParseException e) {
                    log.error("转换时间失败:", e);
                }
            }
            return null;
        }
  • 相关阅读:
    OneSQL安装
    Dropbox可伸缩性设计最佳实践分享
    软件开发实践的24条军规
    最精彩的英语学习经验总结:俺的英语之路
    Facebook和Google如何激发工程师的创造力
    十种更好的表达“你的代码写的很烂”的方法
    一次java程序的重构
    漂亮代码
    一段代码引发的思考
    最难忘的Bug调试经历
  • 原文地址:https://www.cnblogs.com/usual2013blog/p/3318077.html
Copyright © 2011-2022 走看看