草庐IT

diff_match_patch

全部标签

php 使用 preg_match 验证字符串

我试图在PHP中使用preg_match验证输入字符串仅包含“a-z、A-Z、-、_、0-9”字符。如果它仅包含这些,则进行验证。我试图在谷歌上搜索,但找不到任何有用的东西。有人可以帮忙吗?谢谢! 最佳答案 如果空字符串也有效,请使用模式'/^[A-Za-z0-9_-]*$/'。否则'/^[A-Za-z0-9_-]+$/'所以:$yourString="blahblah";if(preg_match('/^[A-Za-z0-9_-]*$/',$yourString)){#yourstringisgood}此外,请注意,您希望在字符类

php - preg_match 中的正则表达式和模式 - 适合 123-23-345 的 PHP

我不太擅长找到正确的正则表达式自动化来生成不同的表达式,但是当涉及到用PHP编写脚本时,这让我很头疼。我无法证明自己能够在preg_match中编写一个“适合”表达式的模式,例如:123-23-345...123-34-456....12-234-56.....它应该是3组数字,其中每组,individualy是从左到右排序的,并且每个下一组的数字都不比前一组的最大数字大。这:123-23-456是错误的,因为23中的2小于123中的3。123-43-45又是错误的,因为43应该是34...这应该可以帮助我验证可能只有该类型内容的字段。它应该是一个正则表达式验证,而不是一个用于解析、拆

php - preg_match_all 到简单数组

我有preg_match_all函数:preg_match_all('#(.*?)#is',$source,$output,PREG_SET_ORDER);它按预期工作,但问题是,它preg_matches所有项目两次并进入一个巨大的多维数组,例如,它按预期预匹配所需的所有11个项目,但两次并进入一个多维数组:Array([0]=>Array([0]=>10.CruelbySt.Vincent[1]=>10.CruelbySt.Vincent)[1]=>Array([0]=>9.RobotRockbyDaftPunk[1]=>9.RobotRockbyDaftPunk)[2]=>Arr

php - Laravel 将 put/patch 路由定义为相同的路由名称

在Laravel中,使用路由资源快速生成大量路由非常方便:Route::resource('things'ThingsController');这将为CRUD操作生成所有必要的RESTful路由。其中之一是PUT/PATCH路由,其定义如下:PUT/PATCHthings/{id}ThingsController@updatethings.update我读到过,明确定义每条路线比使用路线资源更好,但我将如何定义上面的PUT/PATCH路线。我明白我能做到Route::put('thing/{id}',['as'=>'things.update']);或Route::patch('thi

php - 未定义的 date_diff()

我正在尝试使用date_diff():$datetime1=date_create('19.03.2010');$datetime2=date_create('22.04.2010');$interval=date_diff($datetime1,$datetime2);echo$interval->format('%R%ddays');它对我不起作用,报错:Calltoundefinedfunctiondate_diff()我怎样才能让它工作?使用PHP5.2。谢谢。 最佳答案 函数date_diff需要PHP5.3或更高版本。更

java - PHP 在 Java 中的 `preg_match_all` 功能

在PHP中,如果我们需要匹配类似["one","two","three"]的内容,我们可以将以下正则表达式与preg_match.$pattern="/\[\"(\w+)\",\"(\w+)\",\"(\w+)\"\]/"通过使用括号,我们还可以提取单词一、二和三。我知道Java中的Matcher对象,但无法获得类似的功能;我只能提取整个字符串。我将如何去模仿Java中的preg_match行为。 最佳答案 对于Matcher,要获取组,您必须使用Matcher.group()方法。例如:Patternp=Pattern.compi

php - 使用 "function (array $matches)"时出现意外的 T_FUNCTION 错误

您好,我正在使用以下代码,但第二行出现“意外的T_FUNCTION”语法错误。有什么建议吗?preg_replace_callback("/\\[LINK\=(.*?)\\\](.*?)\\[\/LINK\\]/is",function(array$matches){if(filter_var($matches[1],FILTER_VALIDATE_URL))return''.htmlspecialchars($matches[2])."";elsereturn"INVALIDMARKUP";},$text); 最佳答案 当您的PH

VSCode Git下来代码,修改无故多好多转行,导致Git diff修改了整个文件

VSCodeGit下来代码,修改无故多好多转行,导致Gitdiff修改了整个文件目录VSCodeGit下来代码,修改无故多好多转行,导致Gitdiff修改了整个文件问题描述问题解决过程:问题描述公司电脑是window系统,从github上拉取代码,修改一个文件,只是增加了三行代码,但是整个文件都改变了。导致commit的时候很混乱,上千行代码中找不到我修改的那三行,给我难受的。问题解决过程:两个方面可能造成这个结果,一方面是Git,另一方面是vscode这个编辑器。哎呀我一直以为是Git的问题。因为之前用Mac的时候没有出现这个问题。Git提交文件,提示显示修改了整个文件,实际只操作了几行不同

PHP preg_match 只返回第一个匹配项

第一个问题是:我正在使用http://www.phpliveregex.com/检查我的正则表达式是否正确,它找到了多个匹配行。我正在做这个正则表达式:$lines=explode('\n',$text);foreach($linesas$line){$matches=[];preg_match("/[0-9]+[A-Z][a-z]+[A-Z][a-z]+S[0-9]+\-[0-9]+T[0-9]+/uim",$line,$matches);print_r($matches);}在$text上看起来像这样:http://pastebin.com/9UQ5wNRu问题是打印的匹配项只有一

PHP preg_match_all 搜索和替换

我已经尝试了大约一百万种不同的正则表达式,但我就是无法理解这个(诚然,我无法掌握很多正则表达式)。在我的文本中我有这样的变量:{{$one}}{{$three.four.five}}{{$six.seven}}我有一个包含所有替换项的数组('one'的索引是'one'等),但有些可能会丢失。我想从数组中替换它(如果存在),如果不存在则保留文本。我可以使用什么正则表达式来预匹配下面代码段中$text中的所有变量,在适当的地方从$replace替换并回显到浏览器?'1','testc.testa'=>'2','testf'=>'3');$text='{{$testa.testb.testc