C#正则应用

private int IsDigitOrNumber(string str){    if(System.Text.RegularExpressions.Regex.IsMatch(str,@"(?i)^[0-9a-z]+$"))        return 1;    else return 0;}...
代码星球 代码星球·2023-05-06

thinkphp实现sql like模糊查询实例

目前使用thinkphp框架进行项目开发的人越来越多了,由于其封装性较好,导致了很多纯PHP开发的部分不易上手,本文实例即以like模糊查询为例对此加以说明。这里主要通过举例来说明用法:ThinkPHP可以支持直接使用字符串作为查询条件,但是大多数情况推荐使用索引数组或者对象来作为查询条件,因为会更加安全。一、使用字符串作为查询条件这是最传统的方式,但是安全性不高,例如:代码如下:1$User =M("User"); //实例化User对象2 $User->where('type=1ANDstatus=1')->select();最后生成的SQL语句是代码如下:1SELECT * FROM think_user WHERE type=1 AND status=1如果进行多字段查询,那么字段之间的默认逻辑关系是逻辑与AND,但是用下面的规则可以更改默认的逻辑判断,通过使用_logic定义查询逻辑:代码如下:1$User =M(&qu...

php+redis实现超时取消订单功能

业务场景:秒杀案例秒杀业务逻辑:多个用户同时抢单,通过mysql行锁抢到的用户进入待支付页面(倒计时)。当用户没有支付订单超时时则取消该订单并归还库存。应用thinkphp+redis+workerman(可以自定义命令常驻)1、thinkphp安装workerman。这里就过了,thinkphp手册去找。2、安装好redis及扩展。用宝塔的直接搞就完了,过。3、生产者:用户创建订单向redis插入一条订单数据。$redis=newRedis();$redis->connect('127.0.0.1',6379);//$redis->auth('密码');//redis有密码就加/***seckill_time为列队名称*time()+$seckill['pay_time']为到期时间戳*$newSeckillOrder->id为订单id,可以json字符串存储*/$redis->zAdd('seckill_time',time()+$seckill['pay_time'],$newSeckillOrder->id);4、消费者:这里我们需要一个常驻内存一...

手机号码正则表达式

Regex regex = new Regex(@"^1d{10}$"); // 注意 ^$。if (regex.IsMatch(phoneNumber)){// 匹配。}手机号码正则表达式:^1d{10}$。只限定了第一个字符为1,不像有些一定要限定13开头、15开头,我觉得没必要,以后号段一增加,这正则表达式就得改,多麻烦啊。...
代码星球 代码星球·2023-04-16

C# 正则表达式使用示例-替换

C#正则表达式使用示例-匹配C#正则表达式使用示例-替换本示例是提取出字符串中的航班代码(假设为两个字母+四个数字),然后为其加上超链接,链接到其他网站,以查询航班信息。returnRegex.Replace(s,"([A-Z]{2}[0-9]{4})","<ahref="https://www.xxx.com/s?word=$1"target="_blank">$1</a>",RegexOptions.Multiline|RegexOptions.IgnoreCase); C#正则表达式使用示例-匹配C#正则表达式使用示例-替换...

C# 正则表达式使用示例-匹配

C#正则表达式使用示例-匹配C#正则表达式使用示例替换usingSystem.Text.RegularExpressions;//示例一Matchmatch=Regex.Match(str,">(.*?)<");match.Groups[0].Value;//匹配的整个字符串match.Groups[1].Value;//匹配的第一个括号中的内容//示例二//多个匹配foreach(MatchmatchinRegex.Matches(str,pattern)){match.Groups[0].Value;}C#正则表达式使用示例-匹配C#正则表达式使用示例替换...

C# 正则表达式解析 [3,7) 这种带括号的字符串

usingSystem.Text.RegularExpressions;Matchmatch=Regex.Match("[3,7)",@"^([|()(.*),(.*)()|])$");//要进一步限定括号中的只能是数字,则可以替换.*为d*。if(match.Success){stringstr="";for(inti=0;i<match.Groups.Count;i++){str+=""+i+":"+match.Groups[i].Value;}MessageBox.Show(str);}显示结果为:0:[3,7)1:[2:33:74:)正则表达式中,用作转义符,将括号转义为普通字符,用Regex.Match匹配,若结果为Success则匹配成功,再用Groups[i].Value取出括号匹配的各项值。用^、$限定了行的开头和结尾,即头尾要完全匹配,并不是说只匹配字符串其中的一部分。当然,如果要进一步限定括号中的只能是数字,则可以替换.*为d*。相关阅读白话解释正则表达式中参数g、m、i的作用涉及正则表达式验证字符串长度时别忘了^、$正则表达式匹配次-懒惰匹配...

C# 中正则表达式进行忽略大小写的字符串替换

在C#里要进行忽略大小写的字符串替换,用string的Replace是很难做到的,即使花了天大的力气做到了,效率仍然是很低的,正确的方法应该是使用正则表达式。使用正则表达式,首先需要引用命名空间:usingSystem.Text.RegularExpressions;然后,非常简单,使用:Regex.Replace(字符串,要替换的子串,替换子串的字符,RegexOptions.IgnoreCase);就可以达到目的了,其中最后的参数RegexOptions.IgnoreCase即为指明忽略大小写。但是,我现在要为一组字符串中的所有匹配的子字符串加上高亮显示(就是让它的字体样式和字符串其它的部分不一样),用下面的语句在字符串两端插入html标签,确实可以实现高亮,但高亮显示的就成了搜索子串的搜索字符串了,大小写与原文有差异。打个比方:我在“第十三种Asp.net实现”中搜索的keyString为"asp",替换后的字符串就成了“第十三种asp.net实现”,而不是希望的“第十三种 Asp.net实现”。DocumentResume[i]=Regex.Replace(hitDo...

linux之CentOS将php和mysql命令加入环境变量

PHP和mysql命令没有加入到环境变量之前,执行“php-v”命令查看当前php版本信息时时,则会提示命令不存在的错误。为了使用方便,需要将php和mysql命令加到系统命令中。下面我们详细介绍一下在linux下将php和mysql加入到环境变量中的方法(假设php和mysql分别安装在/usr/local/webserver/php/和/usr/local/webserver/mysql/中)。方法一:直接运行命令exportPATH=$PATH:/usr/local/webserver/php/bin和exportPATH=$PATH:/usr/local/webserver/mysql/bin使用这种方法,只会对当前会话有效,也就是说每当登出或注销系统以后,PATH设置就会失效,只是临时生效。方法二:执行vi~/.bash_profile修改文件中PATH一行,将/usr/local/webserver/php/bin和/usr/local/webserver/mysql/bin加入到PATH=$PATH:$HOME/bin一行之后这种方法只对当前登录用户生效方法三:修改/et...

如何分析php-cgi进程占用cpu资源过多负载高的原因

服务器环境:RedhatLinux5.5,nginx, phpfastcgi在此环境下,一般php-cgi运行是非常稳定的,但也遇到过php-cgi占用太多cpu资源而导致服务器响应过慢,所遇到的php-cgi进程占用cpu资源过多的原因有:一些php的扩展与php版本兼容存在问题:实践证明eAccelerater与某些php版本兼容存在问题,具体表现是启动php-cgi进程后,运行10多分钟,奇慢无比,但静态资源访问很快,服务器负载也很正常(说明nginx没有问题,而是php-cgi进程的问题),解决办法就是从php.ini中禁止掉eAccelerater模块,再重启php-cgi进程即可。 程序中可能存在死循环,导致服务器负载超高(使用top指令查看负载高达100+),需要借助Linux的proc虚拟文件系统找到具体的问题程序。 php程序不合理使用session,这个发生在开源微博记事狗程序上,具体表现是有少量php-cgi进程(不超过10个)的cpu使用率达98%以上,服务器负载在4-8之间,这个问题的解决,仍然需要借助Linux的proc文件系统...

在CentOS上把PHP从5.4升级到5.5

摘要:本文记录了在CentOS6.3上,把PHP从5.4.8升级到5.5.13的过程。在我做的一个项目中,最近我对生产服务器上的一系列系统软件进行了升级,包括Git、Nginx、MySQL和PHP。这篇文章讲的是升级PHP的过程,其他软件的升级,可见下面列出的文章。在我加入这个项目之前,服务器上的PHP已经安装设置好了,我只是正常使用而已。现在过去1年了,所有的开发工作都告一段落,有时间升级服务器上的软件了。升级这种事情是应当经常做的,倒不是为了追最新版本,而是当正式版本发放出来的时候,应该及时更新,以便获得最新的更正、补丁,避免服务器上的漏洞,减少安全隐患。升级是在今年6月13-14日进行的,到今天才有空做个记录,便于日后参考。计划就是预案,就是事先的准备(包括心理上的)、更明细的步骤、对各种情况及对意外的对策,当然,我们不可能面面俱到,预测一切,不然就成神了,所以要随时准备脱稿演出,thinkoutofthebox。2.1了解情况计划要有针对性,所以要先”踩点儿“。通过在系统上,用find之类的命令,或者通过网页用phpinfo()函数来显示关于PHP的信息...
开发笔记 开发笔记·2023-03-14

php Make编译PEAR package PHP_Archive not installed解决方法

Generatingphar.phpGeneratingphar.pharPEARpackagePHP_Archivenotinstalled:generatedpharwillrequirePHP'spharextensionbeenabled.pharcommand.incdirectorygraphiterator.incclicommand.incinvertedregexiterator.incdirectorytreeiterator.incphar.inc Buildcomplete.Don'tforgettorun'maketest'. php的编译时需要依赖pearpackage,目前的问题错误"PEARpackagePHP_Archivenotinstalled:generatedpharwillrequirePHP'spharextensionbeenabled.",已经明显报出这个问题。因此编译使用参数--without-pear 将pear屏蔽掉编译安装后,再进行安装;同...

前端Vue中使用crypto-js对数据进行加密,后端php解密

使用前后端分离技术,前端采用Vue,后端使用php,在开发过程中因某些数据需要进行加密与解密,我们采用前端插件crypto-js应用于项目中。安装crypto-jsnpminstallcrypto-js在Vue项目中编写前端加密工具类/tools/crypto.js/**crypto.js**///npminstallcrypto-js/***AES对称加密(不安全)*/letCryptoJS=require('crypto-js');exportdefault{/***接口数据加密函数*@paramstrstring需加密的json字符串*@paramkeystring加密key(16位)*@paramivstring加密向量(16位)*@returnstring加密密文字符串*/encrypt(str,key,iv){//密钥16位varkey=CryptoJS.enc.Utf8.parse(key);//加密向量16位variv=CryptoJS.enc.Utf8.parse(iv);varencrypted=CryptoJS.AES.encrypt(str,ke...

C语言——正则表达式(不规则)

intmain(){char*s1="123!EDGnb![edg:不破不立!]";//1:用于取前面char*s2="123!EDGnb![edg:不破不立!]";//2:用于取后面char*s3="123!EDGnb![edg:不破不立!]";//3:用于取中间char*s4="123!EDGnb![edg:不破不立!]";//4:用于只取数字char*s5="FpxIgEdgnb![edg:不破不立!]";//5:用于只取大小写字母char*s6="123!EDGnb![777:不破不立!]";//6:选择性取出char*s7="2001-11-07";//7:用于取出日期charstr[100]={''};intyear,month,day;sscanf(s1,"%[^a-z]%s",str);//1:取出小写字母前面的数据:123!EDGputs(str);sscanf(s2,"%*[^A-Z]%s",str);//2:取出大写字母后面的数据:EDGnb![edg:不破不立!]puts(str);sscanf(s3,"%*[^[][%[^]]",str);//3:取出括号中的...

php如何实现判断参数不能为空

php批量判断参数不能为空代码如下://批量判断参数是否为空$arr=array_keys(array_map('trim',$data),'');if($arr){echo'有参数为空';}//假设$_POST=array('name'=>'shuiping','sex'=>'','test'=>'','home'=>'','shuiping'=>'');$t=array_keys($_POST,'');//如果空格不算空,就用这条$t=array_keys(array_map('trim',$_POST),'');//如果空格算空,就用这条if($t){//有空数据项print_r($t);//值就是为空的项}...
首页上一页...45678...下一页尾页