草庐IT

php - 如何转义紧随其后的引号?

我想转义所有尚未转义的双引号。我已经在使用real_escape_string(),但我想了解以下正则表达式/方法有什么问题:$str='"Hello"""""world!\"';preg_replace('/(^|[^\\\\]{1})\"/','${1}\"',$str);(PS:我知道-\\"不会被转义,在某些其他情况下可能会成为问题,尽管这对我的脚本来说无关紧要。)结果是:\"Hello\""\""\"world!\"但我希望它是:\"Hello\"\"\"\"\"world!\" 最佳答案 这里是你如何转义你的sql:$s

php - 用于提取不带空格的哈希标签的正则表达式

我正在使用这个:$t="#hashtag#goodhash_tagunitedstates#l33tthis";$queryVariable="";if(preg_match_all('/(^|\s)(#\w+)/',$t,$arrHashTags)>0){array_filter($arrHashTags);array_unique($arrHashTags);$count=count($arrHashTags[2]);if($count>1){$counter=1;foreach($arrHashTags[2]as$strHashTag){if(preg_match('/#\d*[

php - 在 PHP 中将此字符串解析为数组的有效方法?

背景我有一个数组,它是根据0d0a的每次出现拆分字符串创建的使用preg_split('/(?.例如:$string="78781110d0a78782220d0a";将拆分为:Array([0]=>78781110d0a[1]=>78782220d0a)有效的数组元素必须以7878开头并以0d0a结尾.问题但有时,还有一个额外的0d0a在拆分为额外且无效的数组元素的字符串中,即不以7878开头的字符串.以这个字符串为例:$string="78781110d0a2220d0a78783330d0a";这分为:Array([0]=>78781110d0a[1]=>2220d0a[2]=>

php - 使用多个分隔符拆分字符串

我已经看到很多(在您将其标记为重复之前)如何执行此操作,但由于某种原因我的输出不起作用://$delimiterswanted:','|';'|','|';'|','|',and'|'and'|',and'$str='Name1,Name2;Name3;Name4,Name5,Name6,andName7,andName8andName9';$delimiter=array(',',';',';',',',',',',and','and',',and');$str_new=explode($delimiter[0],str_replace($delimiter,$delimiter[0

php - 带两个小数点的单个数字的正则表达式模式

下面我使用了我的代码,我只想允许一个数字或两个小数点,如下所示。有效号码。12.349.78无效号码。101.23499.1234用户不能输入无效号码。我使用了下面的代码。document.write('');functionrun(field){setTimeout(function(){//varregex=/^\d{1}\.\d{2}$/;//varregex=/^[0-9]+(\.[0-9]{5})?$/;varregex=/^[0-9](\.\d{2})?$/;///^\d+(\.\d{5})?$/;field.value=regex.exec(field.value);//

php - 在匹配使用变量 : PHP:preg_match 形成的模式时转义字符的特殊含义

我正在执行正则表达式匹配以查找文本中某些特定单词集的首次出现。因为我不想在它们是其他单词的子字符串时生成误报,所以我想使用模式。例如,我想找到整个单词“DOM”,而不是“RANDOMIZER”中的子字符串DOM,比方说。因此,我将模式用作"\bDOM\b"来考虑所有出现的DOM,两侧都有单词边界。但是DOM和其他此类模式字符串来自数组$tags。将每个标签从$tags读入$tag,比较实际上是:preg_match("/\b$tag\b/",...)但如果$tag=".NET",这会遇到麻烦。然后"\b$tag\b"将开始匹配CNET、INET等字符串,将.解释为通配符。那么,我们如何

php - 将字符串分别分解为字符和数字

我有一个字符串HCl3C24我想在php中像这样断开这个字符串array(0=>H,1=>Cl,2=>3,3=>C,4=>24)现在我正在尝试:$matches=array();$string="HCl4";preg_match_all('/([0-9]+|[a-zA-Z]+)/',$string,$matches);print_r($matches[0]);它不适用于字符,但适用于数字。有人可以帮我吗? 最佳答案 使用这个正则表达式:/([0-9]+|[a-zA-Z])/如果你想要["H","Cl",3,"C",24]那么/([0

php - 使用php从html页面中提取图像url

如何使用php从此链接中提取帖子图像?我读到我不能用正则表达式来做。http://www.huffingtonpost.it/2013/07/03/stupri-piazza-tahrir-durante-proteste-anti-morsi_n_3538921.html?utm_hp_ref=italy非常感谢。 最佳答案 $content=file_get_contents($url);if(preg_match("//",$content,$matches)){echo"Matchwasfound";echo$matches

php - 在 PHP 中使用 REGEX 选择样式属性

我希望仅在php中使用正则表达式获取样式属性及其内容。例如输入期望的输出style="float:left;"我尝试过的:这似乎返回了整个图像,我不确定为什么。我不擅长正则表达式。$img='';preg_match('/(]+)style=".*?"/i',$img,$match);返回:[0]=>Array([0]=>谁有任何指点?干杯。 最佳答案 你几乎是正确的,你只需要捕获你想要的部分,将它括在括号中。您目前正在捕获错误的部分:$img='';preg_match('/]+(style=".*?")/i',$img,$mat

php - <li> 元素的 preg_match_all

我正在尝试返回列表的计数。该列表如下所示:1234我只是不知道如何计算li标签的数量。我不在乎内容,只在乎数量。这是我的:preg_match_all('!.*?.*?.*?!',$content,$matches);丑陋的我知道,当我count($matches[0]);时我只收到一个匹配项谁能指出我做错了什么和/或为什么?谢谢编辑:我知道用正则表达式解析HTML是bad,但我现在在这件事上别无选择。 最佳答案 .*?.*?.*?^^^我要指出的部分是消耗所有字符直到(甚至是部分)。消耗它们后,没有更多的匹配,它到此结束,只给出一