草庐IT

Preg_match_all

全部标签

php - 正则表达式挑战 : Capture all the numbers in a specific row

假设我们有这样的文本:...settingsA=9,4.2settingsB=3,1.5,9,2,4,6settingsC=8,3,2.5,1...问题是我如何使用一个步骤捕获特定行中的所有数字?单步意味着:单个正则表达式模式。单一操作(无循环或拆分等)所有匹配都被捕获在一个数组中。假设我想捕获以settingsB=开头的行中出现的所有数字。最终结果应该是这样的:31.59246我失败的尝试:更新1:不幸的是,@Saleem的示例使用了多个步骤而不是单个步骤。我并不是说他的例子不好(它确实有效),但我想知道是否有另一种方法可以做到这一点以及如何做到这一点。有什么想法吗?更新2:@bob

php - 函数 split() 已弃用,preg_split() : No ending delimiter ',' found

我有一个10年前写的PHP脚本。现在我们将脚本移至新服务器,但它无法正常工作。有问题的行是:$p_industry=split(',',$member['p_industry']);测试电子邮件收到此错误消息:Functionsplit()isdeprecated.我研究了这个网站,然后用替换了脚本$p_industry=preg_split(',',$member['p_industry']);然后测试电子邮件收到此不同的错误消息:preg_split():Noendingdelimiter','found当我将脚本更改为$p_industry=explode(',',$member

php - Postgres : update all values in column by one?

有没有办法做到这一点?我想以下将不起作用。UPDATEtableSETcolumn=column+1...除了编写函数或使用PHP之外,还有其他方法可以通过查询来实现吗? 最佳答案 你试过吗?它应该正常工作。 关于php-Postgres:updateallvaluesincolumnbyone?,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/4087987/

php - PHP Preg 引擎中的错误 : look-around Unicode issue

为什么后面js码字:"آرد@".replace(/(?=.)/g,'!');//returns:""!آ!ر!د""但它的php等价物返回'!��!��!��!��!��!��'?preg_replace('/(?=.)/u','!','آرد');//returns'!�!�!�!�!�!�'这仅适用于4.3.5-5.0.5、5.1.1-5.1.6版本。参见:http://3v4l.org/jrV0W 最佳答案 如果您简单地添加/u修饰符,该模式应该被视为utf-8。第二个示例之所以有效,是因为:自PHP5.1起,您可以使用\p

php - preg_match_all 到简单数组

我有preg_match_all函数:preg_match_all('#(.*?)#is',$source,$output,PREG_SET_ORDER);它按预期工作,但问题是,它preg_matches所有项目两次并进入一个巨大的多维数组,例如,它按预期预匹配所需的所有11个项目,但两次并进入一个多维数组:Array([0]=>Array([0]=>10.CruelbySt.Vincent[1]=>10.CruelbySt.Vincent)[1]=>Array([0]=>9.RobotRockbyDaftPunk[1]=>9.RobotRockbyDaftPunk)[2]=>Arr

php - 如何在 PHP 中使用 preg_replace 匹配俄语单词?

如何在PHP中匹配字符串(也是俄语)中的俄语单词?例如这样的事情:$pattern='/слово/';preg_replace($pattern,$replacement,$string_in_russian)我试过了utf8_encode和htmlentities为$pattern使用UTF-8标志,但它没有用。我还应该对$string_in_russian进行编码吗?更新:/u标志的建议没有用,所以我放置了我需要它的实际代码。它来自Wordpress的词汇表插件(我的网站已正确设置为使用俄语,它确实有效,但在本例中无效)。所以这是代码$glossary_title=$glossa

java - PHP 在 Java 中的 `preg_match_all` 功能

在PHP中,如果我们需要匹配类似["one","two","three"]的内容,我们可以将以下正则表达式与preg_match.$pattern="/\[\"(\w+)\",\"(\w+)\",\"(\w+)\"\]/"通过使用括号,我们还可以提取单词一、二和三。我知道Java中的Matcher对象,但无法获得类似的功能;我只能提取整个字符串。我将如何去模仿Java中的preg_match行为。 最佳答案 对于Matcher,要获取组,您必须使用Matcher.group()方法。例如:Patternp=Pattern.compi

php - 使用 "function (array $matches)"时出现意外的 T_FUNCTION 错误

您好,我正在使用以下代码,但第二行出现“意外的T_FUNCTION”语法错误。有什么建议吗?preg_replace_callback("/\\[LINK\=(.*?)\\\](.*?)\\[\/LINK\\]/is",function(array$matches){if(filter_var($matches[1],FILTER_VALIDATE_URL))return''.htmlspecialchars($matches[2])."";elsereturn"INVALIDMARKUP";},$text); 最佳答案 当您的PH

php - 使用 preg_replace() 和正则表达式将大写字符串替换为小写字符串

是否可以使用preg_replace和regex将大写字母替换为小写字母?例如:以下字符串:$x="HELLOLADIES!";我想把它转换成:helloladies!使用preg_replace():echopreg_replace("/([A-Z]+)/","$1",$x); 最佳答案 我想这就是你想要完成的:$x="HELLOLADIES!Thisisatest";echopreg_replace_callback('/\b([A-Z]+)\b/',function($word){returnstrtolower($word[

php - preg_replace : add number after backreference

情况我想使用preg_replace()在每个[aeiou]之后添加一个数字'8'。示例来自abcdefghija8bcde8fghi8j问题替换字符串应该怎么写?//inputstring$in='abcdefghij';//thisobviouslywon'twork----------↓$out=preg_replace('/([aeiou])/','\18',$in);这只是一个例子,所以建议str_replace()不是一个有效的答案。我想知道如何在替换字符串中的反向引用后得到数字。 最佳答案 解决方案是将反向引用包装在$