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>-->\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;
}
php正则表达式总结的更多相关文章
- JS正则表达式常用总结
正则表达式的创建 JS正则表达式的创建有两种方式: new RegExp() 和 直接字面量. //使用RegExp对象创建 var regObj = new RegExp("(^\\s+) ...
- Python高手之路【五】python基础之正则表达式
下图列出了Python支持的正则表达式元字符和语法: 字符点:匹配任意一个字符 import re st = 'python' result = re.findall('p.t',st) print( ...
- C# 正则表达式大全
文章导读 正则表达式的本质是使用一系列特殊字符模式,来表示某一类字符串.正则表达式无疑是处理文本最有力的工具,而.NET提供的Regex类实现了验证正则表达式的方法.Regex 类表示不可变(只读)的 ...
- C#基础篇 - 正则表达式入门
1.基本概念 正则表达式(Regular Expression)就是用事先定义好的一些特定字符(元字符)或普通字符.及这些字符的组合,组成一个“规则字符串”,这个“规则字符串”用来判断我们给定的字符串 ...
- JavaScript正则表达式,你真的知道?
一.前言 粗浅的编写正则表达式,是造成性能瓶颈的主要原因.如下: var reg1 = /(A+A+)+B/; var reg2 = /AA+B/; 上述两个正则表达式,匹配效果是一样的,但是,效率就 ...
- Python 正则表达式入门(中级篇)
Python 正则表达式入门(中级篇) 初级篇链接:http://www.cnblogs.com/chuxiuhong/p/5885073.html 上一篇我们说在这一篇里,我们会介绍子表达式,向前向 ...
- 【JS基础】正则表达式
正则表达式的() [] {}有不同的意思. () 是为了提取匹配的字符串.表达式中有几个()就有几个相应的匹配字符串. (\s*)表示连续空格的字符串. []是定义匹配的字符范围.比如 [a-zA-Z ...
- JavaScript 正则表达式语法
定义 JavaScript定义正则表达式有两种方法. 1.RegExp构造函数 var pattern = new RegExp("[bc]at","i"); ...
- [jquery]jquery正则表达式验证(手机号、身份证号、中文名称)
数字判断方法:isNaN()函数 test()方法 判断字符串中是否匹配到正则表达式内容,返回的是boolean值 ( true / false ) // 验证中文名称 function isChin ...
- JS中给正则表达式加变量
前不久同事询问我js里面怎么给正则中添加变量的问题,遂写篇博客记录下. 一.字面量 其实当我们定义一个字符串,一个数组,一个对象等等的时候,我们习惯用字面量来定义,例如: var s = &quo ...
随机推荐
- oracle行转列和列转行
目录[-] 一.行转列 1.1.初始测试数据 1.2. 如果需要实现如下的查询效果图: 1.3.延伸 二.列转行 1.1.初始测试数据 1.2. 如果需要实现如下的查询效果图: 一.行转列 1.1.初 ...
- location对象位置操作,进行跳转
location位置操作,进行跳转 location.assign("http://www.baidu.com") 跳转,打开新的url 等价于,将location.href或wi ...
- error: File not found by glob???
引发上述问题的几种情形: 1.rpm包的包名中含有“[.]”这类特殊符号; 2.执行rpm -ivh xxxx.rpm时,xxxx包名不存在; 3.rpm包顶层的目录名不存在或者存在问题: - ...
- TCP\UDP链接的异同
简单的说TCP与UDP的区别是有无连接状态.TCP是有连接状态的,而UDP没有,所以TCP是一种比较安全的通讯协议,而UDP则比较方便 TCP 127.0.0.1:1026 0.0.0.0:0 LIS ...
- UVa 10935 - Throwing cards away I (队列问题)
原题 Throwing cards away I Given is an ordered deck of n cards numbered 1 to n with card 1 at the to ...
- redis 扩展安装使用
Redis的php客户端库非常之多, Redis推荐客户端链接是:http://redis.io/clients 推荐用phpredis,下载地址:https://github.com/nicolas ...
- Java---多线程之死锁
★ 死锁的两种情况: 简单的说下单块cpu运行多线程的情况: 大家可能平时玩电脑,可以同时挂QQ啊,玩游戏啊,打开文本啊,等等.这里,我们假设是单块cpu.也就是俗称的单核cpu. 大家可能会觉得这些 ...
- Scala 编程(三)基本类型和操作
一些基本类型 值类型 范围 Byte 8位有符号补码整数(-27-27-1) Short 16位有符号补码整数(-215-215-1) Int 32位有符号补码整数(-231-231-1) Long ...
- L - Kakuro Extension - HDU 3338 - (最大流)
题意:有一个填数字的游戏,需要你为白色的块内填一些值,不过不能随意填的,是有一些规则的(废话),在空白的上方和作方给出一些值,如果左下角有值说明下面列的和等于这个值,右上角的值等于这行后面的数的和,如 ...
- java集合简介
java集合主要包括以下几点 Java 集合概述 Collection 接口 Iterator 接口 Set List Map Collections 工具类 Enumeration 1.java集合 ...