php正则表达式总结

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

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

 

php
echo 'wj';
echo '
'; /* $file = '移动150卡 广西省南宁市'; */ $file ='广西省南宁市'; $pattern = '/[\x{4e00}-\x{9fa5}]+<\/td>/u'; //$pattern = '/移动150卡<\/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 '
'; $file = '移动150卡 广西省南宁市'; //$pattern = '/[\x{4e00}-\x{9fa5}]+<\/td>/u'; //$pattern = '/移动150卡<\/td>.+广西省南宁市<\/td>/is'; $pattern = '/移动150卡<\/td>\r\n.+<\/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;
    }

 

你可能感兴趣的:(php)