草庐IT

regex_iterator

全部标签

Iterator集合底层原理

//Itr是ArrayList中的一个内部类privateclassItrimplementsIterator{intcursor;//indexofnextelementtoreturn光标,表示是迭代器里面的那个指针,默认指向0索引的位置intlastRet=-1;//indexoflastelementreturned;-1ifnosuch表示上一次操作的索引intexpectedModCount=modCount;Itr(){}publicbooleanhasNext(){returncursor!=size;}@SuppressWarnings("unchecked")publicE

php - 将实现 Iterator 的 PHP 类视为数组

如果我有一个实现Iterator接口(interface)的类,我可以手动控制foreach循环中的迭代方式。但是还有其他方法可以让我的对象表现得像数组吗?例如,假设我有一个类Guestbook实现了Iterator,这样我就可以迭代foreach(newGuestbook()as$entry)。但是,如果我想颠倒顺序怎么办?foreach(array_reverse(newGuestbook())as$entry)肯定不行,因为array_reverse只会接受一个数组。我想我想问的是,我可以将Iterator用于foreach循环以外的其他用途吗?谢谢。

PHP:转义 RegEx 保留字符 - 有人知道这有什么问题吗?

我正在尝试使用反斜杠转义正则表达式保留的字符(不要问-足以说明我不是在尝试解析HTML:))而且我遇到了一些奇怪的事情。$regex_chars=array('[','\\','^','$','.','|','?','*','+','(',')');$regex_chars_escaped=array('\[','\\\\','\^','\&','\.','\|','\?','\*','\+','\(','\)');$escaped_string=str_replace($regex_chars,$regex_chars_escaped,implode("",$regex_chars)

用于 url 字符串的 PHP RegEx

示例字符串:accuracy-is-5accuracy-is-5-or-15accuracy-is-5-or-15-or-20package-is-dip-8-or-dip-4-or-dip-16我当前的正则表达式:/^([a-z0-9\-]+)\-is\-([a-z0-9\.\-]*[a-z0-9])(?:\-or\-([a-z0-9\.\-]*[a-z0-9]))*$/U没有固定长度,部分:\-or\-[a-z0-9\.\-]可以重复。Bot现在从字符串"accuracy-is-5-or-15-or-20"我得到:Array([0]=>accuracy-is-5-or-15-or-

php - 为什么实现 ArrayAccess、Iterator 和 Countable 的类不能使用 array_filter()?

我有以下类(class):container[]=$value;}else{$this->container[$offset]=$value;}}publicfunctionoffsetExists($offset){returnisset($this->container[$offset]);}publicfunctionoffsetUnset($offset){unset($this->container[$offset]);}publicfunctionoffsetGet($offset){returnisset($this->container[$offset])?$this-

php - iterator_to_array

DatePeriod是一个用于处理重复日期的PHP类。它的方法数量非常有限。所以当我想用重复日期做基本的数组函数时,我必须将它复制到一个数组中iterator_to_array.奇怪的是,复制它似乎会破坏它。有什么想法吗?$p=newDatePeriod(date_create('2008-01-01'),DateInterval::createFromDateString("+2days"),date_create('2008-12-31'));echocount(iterator_to_array($p));//183$a=iterator_to_array($p);echocou

php - 来自嵌入代码的 YouTube Vimeo 视频 ID 或来自带有 PHP 正则表达式 RegEx 的 URL

我想通过其嵌入代码或从URL获取YouTube或Vimeo的视频ID,是否有使用PHP执行此操作的解决方案? 最佳答案 你可以使用preg_match获取ID。我将在这个答案的后面部分介绍表达式本身,但这里是如何使用preg_match的基本思想:preg_match('expression(video_id)',"http://www.your.url.here",$matches);$video_id=$matches[1];以下是您询问的每种可能输入类型的表达式分割。我为每个显示一些测试用例和结果的链接添加了一个链接。对于Yo

php regex检测括号内的文本忽略嵌套括号

我正在尝试使php正则表达式工作,该正则表达式解析括号中文本的字符串,同时忽略可能的嵌套括号:假设我想要Loremipsum[1.dolorsitamet,[consectetueradipiscing]elit.].Aeneancommodoligulaegetdolor.[2.Dolor,[consectetueradipiscing]elit.]Aeneanmassa[3.Loremipsum]dolor.返回[1]=>"dolorsitamet,[consectetueradipiscing]elit."[2]=>"Dolor,[consectetueradipiscing]e

php - PHP 的 Iterator 方法 valid()、current() 和 next() 应该如何运行?

我正在使用来自MAMP的PHP5.3.6.我有一个用例,其中最好使用PHP的Iterator接口(interface)方法、next()、current()和valid()循环访问一个集合。foreach循环在我的特定情况下对我不起作用。一个简化的while循环可能看起来像valid()){//dosomethingwith$iter->current()$iter->next();}当$iter实现PHP的Iterator接口(interface)时,上面的代码是否应该始终有效?PHP的foreach关键字如何处理迭代器?我问的原因是我正在编写的代码可能会被赋予ArrayIterat

php - 将逗号(,)替换为点(.)RegEx php

我正在尝试这段代码,但我得到了这个错误:Noendingdelimiter'/'found$form="2000,50";$salary=preg_replace('/',','.'/',$form);//Noendingdelimiter'/'foundecho$salary;我不确定正则表达式验证。 最佳答案 正则表达式对于仅替换单个字符来说太过分了。为什么不直接这样做呢?str_replace(',','.',$form); 关于php-将逗号(,)替换为点(.)RegExphp,