草庐IT

regex_search

全部标签

PHP array_search 函数不能正常处理返回值

今天,我发现phparray_search函数有一个很奇怪的问题。实际上我应用的条件是,如果索引是0或大于,它应该通过IF条件,否则不会,但它不会像那样工作。我分析发现,如果输出是FALSE那么(FALSE>=0)它也通过比较值的条件,不知道为什么。谁能解释一下这个问题?这似乎不是array_search函数问题,但我在使用此函数时遇到了问题。$allowedJobCodesForCC=array("xyz","abc");/*outputifvaluenotfoundinarrayvar_dump(array_search(strtolower(trim('xyzfd')),$all

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(为多字节支持

php - 如何将此 PHP RegEx 匹配模式转换为 .Net

这是一个非常复杂的正则表达式,它从专有数据字符串返回键/值对数组。这是数据示例,以防express不能在.Net中使用,需要使用其他方法。0,"101"1,"12345"11,"ABCCompany"12,"JohnDoe"13,"123MainSt"14,""15,"Malvern"16,"PA"17,"19355"19,"UPS"21,"10"22,"GND"23,""24,"082310"25,""26,"0.00"29,"1Z1235550300000645"30,"PA1939-05"34,"6.55"37,"6.55"38,"8.05"65,"1Z1235550300000

php - 正则表达式帮助 : how to match only either pattern in a regex that contains "or" operator?

我正在使用php的preg_replace().基本上我有2种可能的字符串匹配:你好现实世界问候这是我希望完成的:HelloRealWorldGreetings规则解释:如果字符串包含空格,插入在第一个空格字符之后。如果字符串不包含空格(一个单词),则插入就在字符串的中间(+/-如果奇数字符计数)。到目前为止,我已经想出了一个长期有效的解决方案:",$str,1):preg_replace("/.{".round(strlen($str)/2)."}/","$0",$str,1);?>但是,我相信它可以通过一个更短、更优雅的正则表达式来完成,只有一个preg_replace()。打电话

php - 使用 RegEx 进行多词搜索和匹配

我创建了一个函数来突出显示字符串中的单个单词。它看起来像这样:functionhighlight($input,$keywords){preg_match_all('~[\w\'"-]+~',$keywords,$match);if(!$match){return$input;}$result='~\\b('.implode('|',$match[0]).')\\b~i';returnpreg_replace($result,'$0',$input);}我需要该函数来处理支持搜索中空格的不同单词数组。例子:$search=array("thisneeds","here","canhig

PHP RegEx 还原断言以获得相反的匹配

这是我的第一个问题,所以请多多关照:)。我正在尝试构建一个正则表达式来获取一组有效的IP(好的,至少使用正确的IPv4格式)而不是根据RFC1918的私有(private)IP。到目前为止,我已经找到了一种方法恰恰相反,我的意思是成功匹配私有(private)IP,所以我需要的只是一种恢复断言的方法。这是到目前为止的代码://Thisisanexamplestring$ips='10.0.1.23,192.168.1.2,172.24.2.189,200.52.85.20,200.44.85.20';preg_match_all('/(?:10\.\d{1,3}|172\.(?:1[6

超出 PHP ldap_search 大小限制

我对查询Microsoft的ActiveDirectory很陌生,遇到了一些困难:AD的大小限制为每个请求1000个元素。我无法更改大小限制。PHP好像不支持分页(我用的是5.2版本,生产服务器没办法更新。)到目前为止,我遇到了两种可能的解决方案:按objectSid对条目进行排序,并使用过滤器获取所有对象。SampleCode我不喜欢这样有几个原因:弄乱objectSid似乎不可预测,因为你必须将它拆开,将其转换为十进制,再将其转换回来......我不明白你如何比较这些ID。(我试过:'&((objectClass=user)(objectSid>=0))')在对象名称的第一个字母之

Php Regex 排除已经匹配的特定模式

你好,我需要一只手,上面有下面的图案:(?内容..1.0/1.1/1.23/以上模式选择../,1.0/,1.1/,1.23/我不想匹配../,但数字、句点和/的任何排列都应该匹配。请帮帮我。一如既往的感谢。 最佳答案 您可以在现有的正则表达式中放置一个否定的先行断言:(?Seeit 关于PhpRegex排除已经匹配的特定模式,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/125

PHP Regex 将重复字符减少为单个实例

我想删除文本中重复的感叹号(!!!)、问号(??)或句号(....),并将它们替换为它们自身的单个实例。所以我基本上需要“一个preg_replace来统治它们”。我目前正在执行三种不同的模式:preg_replace("/[!]{2,}/","!",$str);preg_replace("/[?]{2,}/","?",$str);preg_replace("/[.]{2,}/",".",$str);有没有一种方法可以仅使用一个正则表达式模式将找到的字符替换为其自身的单个实例?我需要转:Ok!!!Really????Iguess.....进入:Ok!Really?Iguess.使用一个