草庐IT

php - preg_replace 和 preg_match 阿拉伯字符

这个问题在这里已经有了答案:关闭10年前。PossibleDuplicate:howtoaddArabicletterstourlregex我已经搜索了几个小时,但没有找到答案。如何在阿拉伯字符和英语字符上使用preg_replace?这是我的代码是英文的$string=preg_replace("/&([a-zA-Z])(uml|acute|grave|circ|tilde|ring),/","",$string);$string=preg_replace("/[^a-zA-Z0-9_.-]/","",$string);一些答案​​建议我使用这段代码:$string=preg_rep

php - preg_match 在第一个选择器中选择匹配项

我要测试这个字符串,但无法让它按我想要的方式工作:我希望我的脚本返回fatal而不是500,因为它是我的第一个选择器。可能吗?提前致谢,抱歉我的英语不好。附言:也许我的标题不是很清楚,但我不知道如何更好地解释它。如果找到它,请更改它。 最佳答案 如果你只想用一个正则表达式来做,你可以这样做:$selectors=array('fatal','500');//Arrayofselectors(inpriorityorder)$delimiter='/';$regex=$delimiter.'('.implode('|',array_m

php - 使用 preg_replace 的带括号的负值格式

我想要一个将使用preg_replace转换的正则表达式=>-1121234.56to(1,121,234.56)=>-1121to(1,121.00)=>1121to1,121.00现在我已经用过了$number=-12121234.56;$replaced=preg_replace('/(-?\d+)(\d\d\d)/','$1,$2',$number);O/P-12,121,234.56我也想要上述功能。 最佳答案 你可以只使用number_format():functionmyformat($nr){$nr=number_f

php - preg 匹配重复或增量字符

我正在使用预匹配来验证密码:(preg_match("/^.*(?=.{5,}).*$/",$password)它也接受特殊字符。但出于某种原因,我需要修改它应该接受仅字母数字至少5个字符长非常重要的是它不能有任何重复或增量字符,如:aaaa或12345或abc123等. 最佳答案 if(preg_match('%^#Startofstring(?!.*(.)\1)#Assertnorepeatedcharacters#Assertnosequentialdigits/characters(?!.*(?:01|12|23|34|45

php - 要转义的所有 PHP preg_replace 字符的列表

在哪里可以找到使用preg_replace时必须转义的所有字符列表。我在数组$ESCAPE_CHARS中列出了我认为是其中的三个。我还缺少什么。我需要这个,因为我要对提交的表单进行预替换。也就是说。$ESCAPE_CHARS=array("#","^","[");foreach($ESCAPE_CHARSas$char){$_POST{"string"}=str_replace("$char","\\$char",$_POST{"string"});}$string=$_POST{"string"};$test="stringoftext";$test=preg_replace("$s

php - preg_match_all能匹配获取的最大字符串长度?

我正在尝试使用preg_match_all()解析一些网页,其中一些网页非常大,有几MB。并且其中一个正则表达式匹配了一些文本字符串,这些字符串非常大,以至于它们似乎无法匹配并获取它们。它只是返回一个空字符串。当我手动选择它并将其保存为.txt文件时,其中一个字符串是1.32MB或1,393,557字节。当字符串短得多,只有几万字节时,正则表达式成功匹配并获取它。所以我的问题是,我发现preg_match_all()可以匹配的字符串有一个限制/最大长度,它是什么以及如何将它设置得更大? 最佳答案 将ini_set('pcre.bac

PHP preg_replace $1 没有空格

我对preg_replace和$1+变量有问题,$1和变量之间没有空格。我有这个代码:$replace_id=5000;$search=1000;$movies='[1000,2000,2300,1234]';$new_movies=preg_replace('#(,|\[)'.$search.'(,|\])#Uis','$1'.$replace_id.'$2',$movies);echo$new_movies;输出:000,2000,2300,1234]但是我想要这样的输出:[5000,2000,2300,1234]当我在$1和$replace_id之间使用带有空格的preg_rep

php - 破折号和下划线的 preg_match 的奇怪行为

我有以下两个表达式。两者几乎相同,首先我检查以3个破折号结尾的字符串,然后检查以3个下划线结尾的字符串$str="this-is_normal-test---";$str=preg_match("/[a-zA-z0-9]+(-+)$/",$str,$matches);print_r($matches);$str="this-is_normal-test___";$str=preg_match("/[a-zA-z0-9]+(_+)$/",$str,$matches);print_r($matches);这是输出:Array([0]=>test---[1]=>---)Array([0]=>

php - preg_split 字符串不在单引号之间

我正在尝试用空格而不是单引号之间的pref_split字符串。这是我正在使用的字符串:'physicalmemory%'=92%;99;100'physicalmemory'=29.69GB;31.68;32;0;32以下正则表达式模式成功匹配了我要分割的空间:/\x20(?=[^']*('[^']*'[^']*)*$)\g我遇到的问题是我使用http://www.regexr.com/编写了这个字符串这是特定于JavaScript正则表达式的,我需要它才能在PHP中工作。这是我目前的PHP代码,但它抛出了一个错误:preg_split("/\x20(?=[^']*('[^']*'[^

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';}我怎样才能让它发挥作用?我打算像这样在函数中使