草庐IT

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

php - 从 PHP 中的 preg_split 获取分隔符

我的PHP代码:$cmd='SELECTvar1FROMvar2GROUPBYvar3LIMITvar4';//splitcommand$p=preg_split('/SELECT|FROM|GROUPBY|LIMIT/si',$cmd);输出:Array([0]=>[1]=>var1[2]=>var2[3]=>var3[4]=>var4)下面的输出可能吗?Array([SELECT]=>var1[FROM]=>var2[GROUPBY]=>var3[LIMIT]=>var4)或者有什么方法可以得到定界符吗? 最佳答案 您是否考虑过

PHP preg_replace 反向引用导致未定义常量通知

我正在尝试在code.google.com上使用NameCase一个php类.当我运行它时,我收到此通知,但我不明白为什么。PHPNotice:UseofundefinedconstantMc-assumed'Mc'innamecase.php(54):regexpcodeonline153if(preg_match('/\bMac[A-Za-z]{2,}[^aciozj]\b/',$str)||preg_match('/\bMc/',$str)){54$str=preg_replace("/\b(Ma?c)([A-Za-z]+)/e","$1.ucfirst('\\2')",$str

php - 调整在电话号码上使用 Preg_Match()

我正在使用preg_match从一段文本中提取美国电话号码的各个部分。我已经可以提取号码了。但我想让match[0]只包含电话号码。问题:我的模式很接近,但我需要一些帮助来摆脱电话号码前的任何文本。如何去掉前面的字符串"Heymyphoneis"?PHP代码$pattern='/.*?(?:1(?:[.-])?)?(?:\((?=\d{3}\)))?([2-9]\d{2})'.'(?:(?输出Array([0]=>Heymyphoneis911-628-4539[1]=>911[2]=>628[3]=>4539) 最佳答案 只需删除

php - USAePay源码中ereg_replace转preg_replace

我正在使用USAePay的[可怕的]PHP库连接到他们的网关,但我收到以下错误:Deprecated:Functionereg_replace()isdeprecatedin.../usaepay.phponline320这对应于以下行:$this->amount=ereg_replace("[^[:digit:].]","",$this->amount);所以,我想用preg_replace将其关闭。这是我的想法:$this->amount=ereg_replace("/[^[\d].]/","",$this->amount);这是否等同于上面的那个? 最

PHP preg_replace : How can I match something but not replace it?

例如,如果我想preg_replace一个HTML元素的标题:$str=preg_replace('/title=\"([^\"]+)\"/','foo',$str);请不要为这个特定示例提供其他解决方案(非正则表达式),这只是一个示例。我需要一个适用于任何正则表达式的解决方案。 最佳答案 如果你想用preg_replace匹配部分,但只是部分替换其他东西,那么有两种选择。您可以重新插入匹配的部分(包含在捕获组中,然后使用$1和$3):$str=preg_replace('/(title=")([^"]+)(")/','$1foo$

php - preg_match 分隔符错误

美好的一天,我已经阅读了大约25篇不同的文章,讨论如何添加“/”或“~”等作为分隔符,但对这行代码无济于事。我尝试过的一切仍然给我一个定界符错误。任何帮助将不胜感激。感谢您的时间。以下是引起我所有研究的原始代码。$allowedHosts=array();//self$host=$_SERVER['HTTP_HOST'];if(preg_match('\d+\.\d+\.\d+\.\d+',$host)){$allowedHosts[]=$host;}else{$allowedHosts[]='*.'.$host;$allowedHosts[]=$host;}

php - preg_replace,正则表达式获取文本部分

我有以下问题:我有一个文本,例如以下格式:min:34.0max:79.0383lifetime:17%code:iweo7373333不是固定的textType,意思是min也可以是-7.94884444左右。我怎样才能提取零件,例如像这样的数组$result['min']=34.0;$result['max']=79.0383andsoon...我现在通过替换空格来做到这一点,然后将“min:”替换为空,“max:”、“lifetime:”……替换为“,”,然后爆炸……主要问题是有时其他变量介于最小值、最大值、...之间,因此位置不保持正确的值。另外-我认为-这不是一个很好的编码风

php - unicode 模式下的 preg_split : delim_capture not working?

我正在尝试使用正则表达式将一大块中文文本拆分成句子。就我而言,句子分隔符是:全角句号。(0x3002)全角问号?(0xFF1F)全角感叹号!(0xFF01)现在,假设我的$str是这样的:$str="你好。你好吗?我是程序员,不太懂这个我的问题,希望大家能帮得上忙!一起加油吧!";我使用带有这些参数的preg_split:$str2=preg_split("/([\x{3002}\x{FF01}\x{FF1F}])/u",$str,PREG_SPLIT_DELIM_CAPTURE|PREG_SPLIT_NO_EMPTY);$str2现在是一个数组,如下所示:array(3){[0]=>

php - PHP 中 preg_quote 的倒数

我需要编写一个与preg_quote函数完全相反的函数。简单地删除所有'\'是行不通的,因为字符串中可能有'\'。例子;inverse_preg_quote('an\\ys\.tri\*ng')//thisshouldreturn"an\ys.tri*ng"或者你可以测试为inverse_preg_quote(preg_quote($string))//$stringshouldn'tchange 最佳答案 你正在寻找stripslashes参见http://php.net/manual/en/function.stripslash