php正则表达式总结

来源:互联网 发布:淘宝店铺利益点介绍 编辑:程序博客网 时间:2024/06/05 16:50
<?phpecho '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); -----是删除<>和中间的内容 

 

<?phpecho '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]+表示一位或者多位的数字

<?phpecho '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>-->\r\n<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;    }

 

0 0
原创粉丝点击