草庐IT

regex-group

全部标签

regex - PHP preg_match_all 限制

我将preg_match_all用于非常长的模式。当运行代码时,我得到了这个错误:Warning:preg_match_all():Compilationfailed:regularexpressionistoolargeatoffset707830经过搜索,我得到了解决方案,所以我应该增加php.ini中的pcre.backtrack_limit和pcre.recursion_limit的值>/p>但是在我增加值并重新启动我的apache之后,它仍然遇到同样的问题。我的PHP版本是5.3.8 最佳答案 该错误与正则表达式的性能无关

Php Regex - 如何选择是否等于某物

classSomething{publicstaticfunctioncompile(&$subject,$replace,$with){$placeholders=array_combine($replace,$with);$condition='{[a-z0-9\_\-]+:[a-z_]+}';$inner='((?:(?!{/?if).)*?)';$pattern='#{if\s?('.$condition.')}'.$inner.'{/if}#is';while(preg_match($pattern,$subject,$match)){$placeholder=$match[

php - 在引号内使用带转义引号的 REGEX

我有一个PHPpreg_match_all和REGEX问题。我有以下代码:Blahhhh"';preg_match_all('/(.*?)\s*=\s*(\'|"|&#?\w+;)(.*?)\2/s',trim($string),$matches);print_r($matches);?>对于我想在带有引号的HTML中传递的实例,这似乎没有选择转义引号。我已经用引号REGEX修复中的基本引号尝试了很多解决方案,但似乎没有一个对我有用。我似乎无法将它们正确地放置在这个预先存在的REGEX中。我不是REGEX高手,有人能给我指明正确的方向吗?我想要达到的结果是这样的:Array([0]=>

php - 通过 REGEX 删除 CSS 注释时出错

事实证明这两个序列(以前有效)"`([\n\A;]+)\/\*(.+?)\*\/`ism"=>"$1",//error"`([\n\A;\s]+)//(.+?)[\n\r]`ism"=>"$1\n",//error现在在PHP7.3中抛出一个错误警告:preg_replace():编译失败:转义序列在字符类偏移量4中无效上下文:考虑这个snipit,它从字符串中删除CSS注释$buffer=".selector{color:#fff;}/*somecommenttoremove*/";$regex=array("`^([\t\s]+)`ism"=>'',"`^\/\*(.+?)\*\/

php - 在 PHP (RegEx) 中提取已加载页面的部分内容

我有一个时事通讯系统,我正试图将其整合到一个PHP站点中。PHP站点加载一个内容区域,并将脚本加载到页面的头部。这适用于为网站生成的代码,但现在我有了要合并的时事通讯。最初我打算使用iFrame,但AJAX和jQuery调用的数量使它变得相当复杂。所以我想我可以使用cURL将时事通讯页面作为变量加载。然后我打算使用RegEx抓取正文标签之间的内容并将其放置在内容区域中。最后,我打算再次使用RegEx来搜索头部并抓取任何脚本。$ch=curl_init();curl_setopt($ch,CURLOPT_URL,$config_live_site."lib/alerts/user/upd

php - 正则表达式(php 中的 preg_match): last groups in the output array don't work correctly

使用这种模式:(howis\s)?(the\s)?(weather)\s?((on)\s)?(today|tomorrow|sunday|monday|tuesday|wednesday|thursday|friday|saturday|sunday|thisweek)?(\s(in)\s(.*)\s?(on)?\s?(today|tomorrow|sunday|monday|tuesday|wednesday|thursday|friday|saturday|sunday|thisweek)?)?这就是我要捕捉的东西输入:维也纳星期二的天气怎么样输出:array(100=>howis

php - SQLite : GROUP BY without Aggregate

我试图了解GROUPBY在SQLitev2.8.17上的一个奇怪行为代码如下:_db->prepare('SELECTCOUNT(*)AScFROM(SELECTMAX(groupCode)FROMdocsGROUPBYgroupCode)');$selectQuery=$this->_db->prepare('SELECTCOUNT(*)AScFROM(SELECTgroupCodeFROMdocsGROUPBYgroupCode)');$selectMaxQuery->exec();$selectQuery->exec();var_dump($selectMaxQuery->fet

php - 检查group by的任何一行是否为空

我正在检查groupby$b的所有行,以防$b中的空行我想禁用组列$a的按钮,如以下脚本所示。我正在使用groupby,这就是它只在$b的第一行起作用的原因。如果其中任何一行为空,如何禁用组列的按钮?我是否应该使用循环来检查$b的所有行。PHP$id=$_POST['id'];$sql=$db->prepare("SELECTa,bfromtableWHEREid=:idgroupbya");$sql->bindparam(':id',$id);$sql->execute();while($row=$sql->fetch(PDO::FETCH_ASSOC)){$a=$row['a'];

php - REGEX 从不匹配 .htaccess 中的 Origin

我有10个子域并从子域(static.88n8.com)获取所有静态文件。我想允许.htaccess中所有子域的交叉来源:SetEnvIfOrigin"^http(s):\/\/(www\.google.com|google\.com|88n8\.com|second\.88n8\.com|third\.88n8\.com|fourth\.88n8\.com)$"OriginDomainStr=$0HeaderaddAccess-Control-Allow-Origin%{OriginDomainStr}eenv=OriginDomainStr或者这个:SetEnvIfOrigin"^

PHP Regex - 两台服务器上的不同解析

我有一个以前没见过的问题。同一个正则表达式在两个不同的服务器上产生两个不同的结果。这是代码:preg_replace('#[^\pL0-9_@-]#iu','','!%&abc123_æøå');服务器A上的结果(php5.2.6,服务器Api:Apache2.0处理程序):abc123_æøå服务器B上的结果(php5.2.5,服务器Api:CGI/FastCGI):123_有人知道为什么会出现这种差异吗? 最佳答案 这一定是因为区域设置PHP多字节字符串支持开/关PHPmb_string.func_overload(为多字节支持