草庐IT

string-matching

全部标签

php - 使用 preg_match 检查字母数字点破折号和下划线的正则表达式是什么?

我正在检查用户输入的用户名我正在尝试使用preg_match()在PHP中验证用户名,但我似乎无法让它按照我想要的方式工作。我需要preg_match()来:只接受字母、数字和。-_即只有字母数字点破折号和下划线,我尝试了htaccess中的正则表达式,就像这样([A-Za-z0-9.-_]+)就像这样,但它似乎不起作用,它为简单的alpha用户名提供false。$text='username';if(preg_match('/^[A-Za-z0-9.-_]$/',$text)){echo'true';}else{echo'false';}我怎样才能让它发挥作用?我打算像这样在函数中使

php preg_match 只匹配数字、字母和点

我已经搜索了2个小时了,但还是没找到。我需要评估帐户名称的输入。这只能包含数字(0-9)、字母(a-z和A-Z)和点(.).其他一切都是被禁止的。所以,没有下划线(_),加上(+)等等。有效的帐户应该是这样的,例如:john.greenluci.mayer89admin我尝试了很多preg_match/regex示例,但无法正常工作。每当我执行echopreg_match(...)时,我都会将1设为true。$accountname="+_#luke123*";echopreg_match("/[a-z0-9.]/i",$accountname);//-->givesback1astr

带有克罗地亚字符的 PHP preg_match

我是正则表达式的新手,但在StackOverflow上进行了一些搜索,我设法得到了我想要的东西(如果2个以上的单词用逗号分隔,则返回true,如果不是,则返回false或这个词以逗号结尾,但后面没有任何内容),除了我对克罗地亚语字符(č,ć,ž,đ,š大写和小写)有疑问。我当前的preg_match看起来像if(preg_match('/^(([a-zA-Z0-9]+\\s*,\\s*)+(\\s*)([a-zA-Z0-9]+))$/',$data)){//dostuff}但是这种方法的问题是如果它有Č,ć,ž...并且我不会返回true知道这是因为[a-zA-Z]没有“寻找”这个字符

php preg_match_all 返回数组数组

我想替换一些模板标签:$tags='{name}text{first}';preg_match_all('~\{(\w+)\}~',$tags,$matches);var_dump($matches);输出是:array(2){[0]=>array(2){[0]=>string(6)"{name}"[1]=>string(7)"{first}"}[1]=>array(2){[0]=>string(4)"name"[1]=>string(5)"first"}}为什么里面有2个数组?如何实现仅第二个? 最佳答案 那是因为您的正则表达式可

php - codeigniter - 未初始化的字符串偏移量 : 0 and Illegal string offset

我在循环中循环,有错误。我以前尝试过,但现在不起作用。我的错误是:APHPErrorwasencounteredSeverity:NoticeMessage:Uninitializedstringoffset:0Filename:views/audit_trail_view.phpLineNumber:36Backtrace:File:C:\xampp\htdocs\cemo-marikina\application\views\audit_trail_view.phpLine:36Function:_error_handlerFile:C:\xampp\htdocs\cemo-mar

PHP 错误 : Function name must be a string/Undefined Variable send_sms

if(!empty($_GET['new_time'])){$sql2="SELECT*FROM".$table_name."WHEREid=".$_GET['new_time'];$result2=mysqli_query($conn,$sql2);$rows=mysqli_fetch_assoc($result2);$mobile_number=$rows['mobile_number'];//Createinstancewithkey$key='AIzaSyD1tPfs4s2dYYHMkCOqNZoVsTkDyud-9Yg';$googer=newGoogleURLAPI($ke

php - "replace"过滤器需要一个数组或 "Traversable"作为替换值,得到 "string"

我正在使用php5.6开发应用程序,但我想将我的php升级到7.0。事实是,当我构建表单时,应用程序会给我这个错误:“替换”过滤器需要一个数组或“Traversable”作为替换值,得到“字符串”。Error这是我用来构建表单的代码:add('metrosPerforados',null,array('label'=>'commons.drillMt'))->add('sidetrack',null,array('label'=>'commons.sidetrack'))->add('descripcion',null,array('label'=>'commons.descripti

php - preg_match 模式在 php v 5 中不起作用

我使用的是PHP5.4.45版。我在php版本7中测试了这段代码并且工作正常但在版本5.4.45中不起作用$string='9301234567';if(preg_match('/^\9\d{9}/',$string)){$string='0+1'.$string;return$string;}在v7中返回:0+19301234567但在v5.4.45中返回(preg_match返回false)9301234567我如何在phpv5.4.45中使用preg_match('/^\9\d{9}/',$string)?谢谢 最佳答案 简介

php - 字符串的特殊 preg_match

这是我的字符串:================================================================================INPUTFILE================================================================================NAME=CO-c0m1.txt|1>!HFdef2-TZVPoptnumfreq|2>|3>%scf|4>convergencetight|5>end|6>|7>*xyz01|8>C000|9>O001|10>*|11>|12>****

php - preg_match 到 domain.tld

如何获取只包含domain.tld的字符串?if(preg_match('^(?:[-A-Za-z0-9]+\.)+[A-Za-z]{2,6}$',$domain))echo"domain.tldfound!";但对于正则表达式^(?:[-A-Za-z0-9]+\.)+[A-Za-z]{2,6}$,子域是还可以。但我只想检查“domain.tld”。我应该使用什么正则表达式?谢谢。 最佳答案 if(preg_match('/^[-a-z0-9]+\.[a-z]{2,6}$/',strtolower($domain)))echo"do