草庐IT

Preg_split

全部标签

php - 在数组上使用 preg_replace

我有一个相对较大的元素数组,我想搜索一个字符串并替换所有匹配项。我目前正在尝试使用preg_replace和正则表达式来做到这一点:preg_replace("/\d?\dIPT\.\w/","IPT",$array);我想获取所有匹配00IPT.A或0IPT.A的值(0代表任何数字字符,A代表任何字母)并将它们替换为IPT。但是,我收到了数组到字符串的转换通知。有没有办法让preg_replace接受数组数据源?如果没有,是否有任何其他方法可以实现此目的?文档说preg_replace应该能够接受数组源——这就是我要问的原因。Thestringoranarraywithstrings

PHP preg_split utf8 字符

preg拆分和utf有问题。这是代码:$original['words']=preg_split("/[\s]+/",$original['text']);print_r($original);这是答案:Array([text]=>Šiosbaterijoskaista[words]=>Array([0]=>�[1]=>ios[2]=>baterijos[3]=>kaista此代码在CakePHP框架中运行。请注意[text]在单词之前正确显示并且在拆分过程中困惑。顺便说一句,我试过使用这些:mb_internal_encoding('UTF-8');mb_regex_encoding

php - preg_match 表现得很奇怪

我正在使用preg_match()从变量中提取文本片段,假设变量如下所示:[htmlcode]Thisissupposedtobedisplayed[/htmlcode]middletext[htmlcode]Thisisalsosupposedtobedisplayed[/htmlcode]我想提取[htmlcode]的内容并将它们输入到一个数组中。我通过使用preg_match()来做到这一点。preg_match('/\[htmlcode\]([^\"]*)\[\/htmlcode\]/ms',$text,$matches);foreach($matchesas$value){r

php - 不使用 preg_match() 在 PHP 中进行 UTF-8 验证

我需要验证一些以UTF-8编码的用户输入。许多人推荐使用以下代码:preg_match('/\A([\x09\x0A\x0D\x20-\x7E]|[\xC2-\xDF][\x80-\xBF]|\xE0[\xA0-\xBF][\x80-\xBF]|[\xE1-\xEC\xEE\xEF][\x80-\xBF]{2}|\xED[\x80-\x9F][\x80-\xBF]|\xF0[\x90-\xBF][\x80-\xBF]{2}|[\xF1-\xF3][\x80-\xBF]{3}|\xF4[\x80-\x8F][\x80-\xBF]{2})*\z/x',$string);这是一个取自http

PHP preg_replace 将 **xyz** 转换为 <b>xyz</b>

为了好玩,我决定制作类似于Markdown的东西。根据我过去对正则表达式的一些小经验,我知道它们有多么强大,所以它们将是我所需要的。所以,如果我有这个字符串:Hello**bold**world我如何使用preg_replace将其转换为:Helloboldworld我假设是这样的?$input="Hello**bold**world";$output=preg_replace("/(\*\*).*?(\*\*/)","",$input); 最佳答案 关闭:$input="Hello**bold**world";$output=pr

PHP - preg_match 和 "Unknown modifier"错误

这个问题在这里已经有了答案:Warning:preg_replace():Unknownmodifier(3个答案)关闭3年前。我的测试运行良好:if(ereg("([0-9]{2})[-./]([0-9]{2})[-./]([0-9]{4})[]([0-9]{2}):([0-9]{2}):([0-9]{2})",$dateToTest,$tab)==false)由于ereg已被弃用,我用这个替换了那个测试:if(preg_match("/([0-9]{2})[-./]([0-9]{2})[-./]([0-9]{4})[]([0-9]{2}):([0-9]{2}):([0-9]{2})

php - preg_match 只允许字母、空格和破折号和空格

我知道如果$stringabc包含除数字以外的任何内容,我当前使用的一个条件是:if(preg_match("/[^0-9]/",$stringabc))我想要一个if条件,如果$stringdef包含除字母、空格和破折号(-)以外的任何内容,它会给出错误。 最佳答案 那就是:if(preg_match('/[^a-z\s-]/i',$stringabc))“除字母(a-z)、空格(\s,表示任何类型的空格)和破折号(-)之外的任何内容”。也允许数字:if(preg_match('/[^0-9a-z\s-]/i',$stringab

PHP Regex preg_match提取

尽管我对伪代码中的正则表达式有足够的了解,但是我仍然无法翻译我想在phpregexperl中执行的操作。我正在尝试使用preg_match提取表达式的一部分。我有以下字符串${classA.methodA.methodB(classB.methodC(classB.methodD)))},我需要做2件事:一种。验证语法${classA.methodA.methodB(classB.methodC(classB.methodD)))}有效${classA.methodA.methodB}有效${classA.methodA.methodB()}无效${methodB(methodC(cl

php - preg_replace 当不在双引号内时

基本上我想替换句子中的某些词(例如,“树”一词与“披萨”一词)。限制:当需要替换的单词在双引号之间时,不进行替换。例子:Thetreeisgreen.->REPLACEtreeWITHpizza"The"treeis"green".->REPLACEtreeWITHpizza"Thetree"isgreen.->DONTREPLACE"Thetreeis"green.->DONTREPLACEThe""treeisgreen.->REPLACEtreeWITHpizza是否可以用正则表达式做到这一点?我会计算单词前双引号的数量,并检查它是奇数还是偶数。但这可能在php中使用preg_r

php preg_split 最后出现的字符

寻求帮助!我需要在最后一次出现空格时拆分字符串...例如“GreatNeckNY”我需要将它分开,这样我就有了“GreatNeck”和“NY”我在使用preg_split和基本内容时没有遇到问题,但我很难弄清楚如何告诉它只在最后一次出现时拆分!任何帮助将不胜感激!迈克 最佳答案 你可以使用lookaheadassertion:preg_split('/\s+(?=\S+$)/',$str)现在,仅当(?=\S+$)从此点开始匹配时,字符串才会在\s+(空白字符)处拆分。\S+$匹配字符串末尾的非空白字符。