草庐IT

lambda表达式

全部标签

php - 正则表达式 - 修剪字符串末尾的字符

我正在尝试删除字符串末尾的尾随-(破折号)。这是我的代码:产生这个:save-45-wed-beach-co-ed-6s-jul-aug-我如何才能删除特定的尾随字符(在本例中为破折号)?提前致谢。 最佳答案 使用rtrim:rtrim($str,"-")如果你坚持使用正则表达式,你可以这样做preg_replace('/-$/','',$str)$字符匹配主题的结尾。 关于php-正则表达式-修剪字符串末尾的字符,我们在StackOverflow上找到一个类似的问题:

php - 正则表达式返回 true,但一本书的作者说它不应该

阅读有关Regexp(TuxRadar)的PHP在线资源。根据作者的说法,以下内容不应将“aaa1”与模式匹配,因此返回false(0),但我得到true(1)。为什么?RegularExpressions 最佳答案 你确定那里不应该有尾随$吗?没有它,返回true很有意义——第一个[a-z]block匹配前2个a字符,[0-9]什么都不匹配,最后一个[a-z]匹配第三个a。尾随1被忽略。查看本书的链接,似乎那里确实有错误:Mustendwithalowercaseletter仅当正则表达式用$锚定到字符串的末尾时才成立。

php - 正则表达式以匹配特定字符的确切出现次数

我正在尝试检查一个字符串是否有一定数量的字符出现。例子:$string='123~456~789~000';我想验证这个字符串是否恰好有3个字符~的实例。是否可以使用正则表达式? 最佳答案 是/^[^~]*~[^~]*~[^~]*~[^~]*$/解释:^...$在许多正则表达式方言中表示整个字符串[^~]*零个或多个非波浪字符的字符串~波浪字符字符串可以根据需要包含尽可能多的非波浪字符,出现在字符串中的任何位置,但必须正好有三个波浪字符,不多也不少。 关于php-正则表达式以匹配特定字符

php - 我的正则表达式出了什么问题?

preg_match('/[^0-9A-Za-z/._\-\s]/',$user)我得到了Warning:preg_match()[function.preg-match]:Unknownmodifier'.'inF:\wamp\www\distinctive\include\validate.inc.phponline4为什么? 最佳答案 您需要转义正则表达式中的/:preg_match('/[^0-9A-Za-z\/._\-\s]/',$user)或使用不同的分隔符:preg_match('#[^0-9A-Za-z/._\-\s

php - 正则表达式正在划分单个语句?

我在使用正则表达式时遇到了困难,我在没有任何先前匹配的情况下获得了单独的“收入”。$string="FY2013EPS,FQ2012revenue";preg_match_all("/F[Y|Q]\s?\d{4}\sEPS|revenue/",$string,$matches);print_r($matches);结果:Array([0]=>Array([0]=>FY2013EPS[1]=>revenue))我期待的是:Array([0]=>Array([0]=>FY2013EPS[1]=>FQ2012revenue)) 最佳答案

php - 在 php 中使用正则表达式拆分字符串

我是php初学者,我有这样的字符串:$test=http://localhost/biochem/wp-content/uploads//godzilla-article2.jpghttp://localhost/biochem/wp-content/uploads/life-goes-on-wpcf_300x111.jpg我想像这样将字符串拆分为数组:Array([0]=>http://localhost/biochem/wp-content/uploads//godzilla-article2.jpg[1]=>http://localhost/biochem/wp-content/

php - 如何用逻辑表达式初始化 bool?

$variable=(0>0)出于某种原因,当我尝试打印$variable时,它​​没有打印任何内容。没有空,什么都没有。但是$variable=(1>0)将$variable设置为true。这是为什么,做我正在尝试的事情的最佳方法是什么? 最佳答案 $variable设置正确——您可以通过var_dump($variable)看到这一点。问题是在PHP中尝试直接打印false和null值打印空字符串,所以似乎什么都没有发生。var_dump是检查实际情况的方法之一;处理bool值时,更方便的方法是先转换为int:echo(int)

php - 正则表达式组包括 if 条件

我已经尝试使用正则表达式/^(\S+)(?:\?$|$)/使用yolo和yolo?两者都适用,但在第二个字符串(yolo?)上,?将包含在捕获组(\S+)中。这是正则表达式的错误还是我犯了一些错误?编辑:我不想要那个'?'包含在捕获组中。抱歉我的英语不好。 最佳答案 您可以使用如果您要捕获的内容中不能包含?,请使用否定字符类[^...](参见demohere):^([^\s?]+)\??$如果你想要捕获的内容可以包含?(例如,yolo?yolo?,你想要yolo?yolo),您需要通过添加?使量词+为lazy(参见demohere)

php - 第一句正则表达式

我正在使用正则表达式(与php/perl兼容)从某些文本中获取第一句。我意识到如果涵盖所有案例,这可能会变得巨大,但只是在目前“足够好”的事情之后。任何人为此得到现成的东西吗? 最佳答案 最终,您需要的是自然语言解析,这是极其困难的,而且仅靠正则表达式(甚至是增强型PCRE表达式)可能是不可能的。考虑这句话:SomuchforMr.Regexandhissentencematching.到目前为止给出的每个答案都会将其解析为两个句子,这甚至算不上极端情况-可以很合理地想象一段以“亲爱的亚当斯先生:”或类似内容开头的文本.您可以添加l

php - 正则表达式白名单问题

我有点困惑。我正在通过我编写的基本清理功能运行我的所有输入,以仅允许某些字符,但仍然允许使用诸如[]之类的字符。functionsanitize($input){$pattern="/[^a-zA-z0-9_-]/";$filtered=preg_replace($pattern,"",$input);return$filtered;}知道它为什么这样做吗? 最佳答案 您的模式字符串中有一个拼写错误导致了问题/[^a-zA-z0-9_-]您需要A-Z。顺便说一句:您可能对字符类[:alnum:]感兴趣和/或PCRE_CASELESS