php常用正则表达精品

^\d+$  //匹配非负整数(正整数 + 0)
^[0-9]*[1-9][0-9]*$  //匹配正整数
^((-\d+)|(0+))$  //匹配非正整数(负整数 + 0)
^-[0-9]*[1-9][0-9]*$  //匹配负整数
^-?\d+$    //匹配整数
^\d+(\.\d+)?$  //匹配非负浮点数(正浮点数 + 0)
^(([0-9]+\.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*\.[0-9]+)|([0-9]*[1-9][0-9]*))$  //匹配正浮点数
^((-\d+(\.\d+)?)|(0+(\.0+)?))$  //匹配非正浮点数(负浮点数 + 0)
^(-(([0-9]+\.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*\.[0-9]+)|([0-9]*[1-9][0-9]*)))$  //匹配负浮点数
^(-?\d+)(\.\d+)?$  //匹配浮点数
^[A-Za-z]+$  //匹配由26个英文字母组成的字符串
^[A-Z]+$  //匹配由26个英文字母的大写组成的字符串
^[a-z]+$  //匹配由26个英文字母的小写组成的字符串
^[A-Za-z0-9]+$  //匹配由数字和26个英文字母组成的字符串
^\w+$  //匹配由数字、26个英文字母或者下划线组成的字符串
^[\w-]+(\.[\w-]+)*@[\w-]+(\.[\w-]+)+$    //匹配email地址
^[a-zA-z]+://匹配(\w+(-\w+)*)(\.(\w+(-\w+)*))*(\?\S*)?$  //匹配url

利用正则表达式去除字串中重复的字符的算法程序:

var s="abacabefgeeii"
var s1=s.replace(/(.).*\1/g,"$1")
var re=new RegExp("["+s1+"]","g")
var s2=s.replace(re,"")
alert(s1+s2) //结果为:abcefgi
===============================
如果var s = "abacabefggeeii"
结果就不对了,结果为:abeicfgg
正则表达式的能力有限

1.确认有效电子邮件格式
下面的代码示例使用静态 Regex.IsMatch 方法验证一个字符串是否为有效电子邮件格式。如果字符串包含一个有效的电子邮件地址,则 IsValidEmail 方法返回 true,否则返回 false,但不采取其他任何操作。您可以使用 IsValidEmail,在应用程序将地址存储在数据库中或显示在 ASP.NET 页中之前,筛选出包含无效字符的电子邮件地址。

[Visual Basic]
Function IsValidEmail(strIn As String) As Boolean
' Return true if strIn is in valid e-mail format.
Return Regex.IsMatch(strIn, ("^([\w-\.]+)@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.)|(([\w-]+\.)+))([a-zA-Z]{2,4}|[0-9]{1,3})(\]?)$")
End Function
[C#]
bool IsValidEmail(string strIn)
{
// Return true if strIn is in valid e-mail format.
return Regex.IsMatch(strIn, @"^([\w-\.]+)@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.)|(([\w-]+\.)+))([a-zA-Z]{2,4}|[0-9]{1,3})(\]?)$");
}

2.清理输入字符串
下面的代码示例使用静态 Regex.Replace 方法从字符串中抽出无效字符。您可以使用这里定义的 CleanInput 方法,清除掉在接受用户输入的窗体的文本字段中输入的可能有害的字符。CleanInput 在清除掉除 @、-(连字符)和 .(句点)以外的所有非字母数字字符后返回一个字符串。

[Visual Basic]
Function CleanInput(strIn As String) As String
' Replace invalid characters with empty strings.
Return Regex.Replace(strIn, "[^\w\.@-]", "")
End Function
[C#]
String CleanInput(string strIn)
{
// Replace invalid characters with empty strings.
return Regex.Replace(strIn, @"[^\w\.@-]", "");
}

3.更改日期格式
以下代码示例使用 Regex.Replace 方法来用 dd-mm-yy 的日期形式代替 mm/dd/yy 的日期形式。

[Visual Basic]
Function MDYToDMY(input As String) As String
Return Regex.Replace(input, _
"\b(?<month>\d{1,2})/(?<day>\d{1,2})/(?<year>\d{2,4})\b", _
"${day}-${month}-${year}")
End Function
[C#]
String MDYToDMY(String input)
{
return Regex.Replace(input,
"\\b(?<month>\\d{1,2})/(?<day>\\d{1,2})/(?<year>\\d{2,4})\\b",
"${day}-${month}-${year}");
}
Regex 替换模式
本示例说明如何在 Regex.Replace 的替换模式中使用命名的反向引用。其中,替换表达式 ${day} 插入由 (?<day>...) 组捕获的子字符串。

有几种静态函数使您可以在使用正则表达式操作时无需创建显式正则表达式对象,而 Regex.Replace 函数正是其中之一。如果您不想保留编译的正则表达式,这将给您带来方便

4.提取 URL 信息
以下代码示例使用 Match.Result 来从 URL 提取协议和端口号。例如,“http://www.contoso.com:8080/letters/readme.html”将返回“http:8080”。

[Visual Basic]
Function Extension(url As String) As String
Dim r As New Regex("^(?<proto>\w+)://[^/]+?(?<port>:\d+)?/", _
RegexOptions.Compiled)
Return r.Match(url).Result("${proto}${port}")
End Function
[C#]
String Extension(String url)
{
Regex r = new Regex(@"^(?<proto>\w+)://[^/]+?(?<port>:\d+)?/",
RegexOptions.Compiled);
return r.Match(url).Result("${proto}${port}");
}

时间: 2024-09-23 22:07:00

php常用正则表达精品的相关文章

常用正则表达

今天收藏了大量的正则表达试代码,我想这想这些都是常用的会对各位朋友们有用的.下面来看看吧.       匹配特定字符串:       ^[A-Za-z]+$ //匹配由26个英文字母组成的字符串       ^[A-Z]+$ //匹配由26个英文字母的大写组成的字符串       ^[a-z]+$ //匹配由26个英文字母的小写组成的字符串       ^[A-Za-z0-9]+$ //匹配由数字和26个英文字母组成的字符串       ^w+$ //匹配由数字.26个英文字母或者下划线组成的字

常用的正则表达试

   public function funcStr($str,$num1='',$num2='') //字符正则表达试  {   if($num1!='' and $num2!=''){    return (preg_match("/^[a-zA-Z]{".$num1.",".$num2."}$/",$str))?true:false;   }else{    return (preg_match("/^[a-zA-Z]/"

详解MySql基本查询、连接查询、子查询、正则表达查询_Mysql

查询数据指从数据库中获取所需要的数据.查询数据是数据库操作中最常用,也是最重要的操作.用户可以根据自己对数据的需求,使用不同的查询方式.通过不同的查询方式,可以获得不同的数据.MySQL中是使用SELECT语句来查询数据的.在这一章中将讲解的内容包括. 1.查询语句的基本语法 2.在单表上查询数据 3.使用聚合函数查询数据 4.多表上联合查询 5.子查询 6.合并查询结果 7.为表和字段取别名 8.使用正则表达式查询 什么是查询? 怎么查的? 数据的准备如下: create table STUD

请问mysql导入数据时,文件名可以用正则表达吗?

问题描述 请问mysql导入数据时,文件名可以用正则表达吗? 我现在有很多iis产生的log文件,想要每天自动导入前一天的log日志到 mysql数据库,现在我只能通过load data local infile '/tmp/ex150801.log'手动导前一天的数据. 如果我要排job自动导出该怎么做? 解决方案 写一个程序定时去跑比较简单,而且灵活. 解决方案二: 用脚本等命令行去调用mysqlimport命令等去加载文件导入数据吧.LOAD DATA语法应该不支持正则

php 手机号码正则表达试程序代码

代码如下 function funcMtel($str)//手机号码正则表达试 { return (preg_match("/(?:13d{1}|15[03689])d{8}$/",$str))?true:false; } 测试 18678785887 返回为 false 原因分析,查看了发现上面正则只能验证以13,15开头的,自然18开头的是不可以用的 修改后 代码如下 function funcMtel($str)//手机号码正则表达试 { return (preg_match(&

js正则表达exec与match的区别说明

 本篇文章主要是对js正则表达exec与match的区别进行了介绍,需要的朋友可以过来参考下,希望对大家有所帮助 以前用js很少用到js的正则表达式,即使用到了,也是诸如邮件名称之类的判断,网上代码很多,很少有研究,拿来即用.   最近开发遇到一些需要使用正则表达式,顺便研究一下   正则表达式对象有两个定义方式::    1.第一种定义:   new RegExp(pattern, attributes);如var reg = new RegExp("abc","g&quo

RegularExpressionValidator 判断输入框 txtZumenmeisyo 的输入是否超过指定长度,正则表达是该怎么写

问题描述 <asp:RegularExpressionValidatorID="RegularExpressionValidator1"ControlToValidate="txtZumenmeisyo"ErrorMessage="1"runat="server"ValidationExpression="[wW]{2,}"></asp:RegularExpressionValidator

利用正则表达对IP进行排序的实现代码

1.补零,使得可以按照字符串顺序进行比较. 2.截取保留后三位(ip地址最多就3位). 3.利用Arrays.sort()方法对截取的字符串进行排序.. 4.去除多余的0,回复ip原样. 5.实现代码: package IPSort; import java.util.Arrays; /** * 利用正则表达对IP进行排序,分四步 * @author tiger * */ public class IPSortTest { public static void main(String[] arg

日期格式-vc regex 正则表达匹配日期

问题描述 vc regex 正则表达匹配日期 vc使用regex实现一个与"2015/05/12"这样日期格式匹配的功能,用最简单的正则式""d{4}/d{12}/d{12}""都匹配不通过. 然后只匹配"2015",用"20dd""不行,用"20d*""却可以 求破 解决方案 ""20dd""有没有打双斜杠? 解决方案二: 语