草庐IT

preg_reg_other

全部标签

php - regex preg php 中的 [^>] 是什么意思?

示例代码:google.comcade.comhtml;echopreg_replace('#]+)"title="([^>]+)">([^>]+)#','$1-$2',$html);?>它工作正常,但我想知道[^>]是什么意思。这个我知道+=1个或更多;()=子模式;但是我不知道^> 最佳答案 表示>以外的任意字符 关于php-regexpregphp中的[^>]是什么意思?,我们在StackOverflow上找到一个类似的问题: https://stack

PHP preg_replace 在最后一个下划线之后出现任何文本

我可以使用explode来做到这一点(或者使用strrpos玩得开心),但我更喜欢使用preg_replace因为应该有点更快,我认为(不是吗?)。此外,它简洁优雅。目的是,给定一个类似a_b_c的字符串来获取另一个字符串,其中字符跟在最后一个_之后,其中替换为传递的字符串。我不擅长正则表达式。我必须在学习中抽出时间买一本好书。不管怎样,我试过这个正则表达式'/_(.*)$/'作为匹配字符串的结尾,捕获最后一个下划线后面的任何字符。我的论证有什么问题?//Doitusingexplodefunctionfoo($string,$replacement){$pieces=explode(

php - 我如何将 preg_match 与字母数字和 unicode 接受一起使用?

我要用PHP建立一个多语言网站,需要有一个preg_match来传递所有Unicode字符和数字。即我需要它来传递英文字母、西类牙文字母、意大利文字母,正如您可能知道的那样,我不想传递其他字符,例如'"_-和...我想要这样的东西:$pattern='/^[unicodecharswithout\'-_;?]*$/u';if(!preg_match($pattern,$url))echo#error; 最佳答案 字母的Unicode属性是\pL所以在preg_match中:preg_match('/^\pL+$/u',$string

php - preg_match 允许反斜杠的问题

我遇到了一个关于preg_match()和反斜杠的奇怪问题。我正在尝试检查非法字符的用户名。它适用于几乎所有东西,但显然像“BobDobbs”这样的用户名正在通过。我已经设法使用strpos()轻松地解决了这个问题,但我仍然不确定我的语法有什么问题。运行PHP5.3.10。$displayname='BobDobbs\\\\';if(preg_match("/[^A-z0-9_.-]/",$displayname)){$errors[]='Namecontainsillegalcharacters';} 最佳答案 范围A-z包含\字

php - 正则表达式 - preg_match 拉丁和希腊字符

这个问题在这里已经有了答案:MatchingUTFCharacterswithpreg_matchinPHP:(*UTF8)WorksonWindowsbutnotLinux(3个答案)关闭9年前。我正在尝试为任何给定的字符串创建一个正则表达式。目标:删除所有不是“latin”或“lowercasegreek”或“numbers”的字符".到目前为止我做了什么:[^a-z0-9]这非常适合拉丁字符。当我尝试这个时:[^a-z0-9α-ω]运气不好。有效但遗漏了任何其他符号,如!!#$%@%#$@,`我对正则表达式的了解有限。任何帮助将非常感激!编辑:下面发布的是匹配指定字符并从中创建一

php - 如何使用 preg_replace 删除字符串中出现的所有以下样式标签/模式?

我正试图找到一个匹配以下内容的正则表达式:.article-content{position:relative;padding-bottom:140px;}.pane.pane-newsletter-contextual{display:block;bottom:32px;position:absolute;left:0px;margin-left:0px;}我需要正则表达式才能将其传递给preg_replace并将其从字符串中删除。我有正则表达式的基本知识,并在查看http://www.regular-expressions.info/examples.html上的基础知识后尝试了这

php - 为什么 < 和 > 需要在 preg_*() 模式中转义?

我已经跑了preg_quote('')检查这些字符是否需要在正则表达式中转义,令我惊讶的是,它们转义了:\.为什么这些字符需要转义?它们在正则表达式中的含义是什么? 最佳答案 在用于定义后视时具有重要意义((?匹配前面没有bar的foo)和>都用于命名子模式,如下所示:preg_match("/(?\d{3})-(?\d{3})-(?\d{4})/",$number,$m);//nowelementsoftheUSphonenumberarein$m['area'],$m['sub']and$m['num']因此,因为它们在与其他符

php - preg_replace 文本的一部分以 PHP 开始和结束

关闭。这个问题不符合StackOverflowguidelines.它目前不接受答案。要求提供代码的问题必须表现出对所解决问题的最低限度理解。包括尝试过的解决方案、为什么它们不起作用,以及预期结果。另请参阅:StackOverflowquestionchecklist关闭9年前。Improvethisquestion我正试图找到一种方法来替换这样的文本:texthereABC-sometexthere-CEDtexthere到texthereABC-replacedtext-CEDtexthere或------------------------------------texthere

php preg_match 获取两个字符串之间的数字

您好,我开始学习php正则表达式并遇到以下问题:我需要提取$string中的数字。我使用的正则表达式返回“NULL”。$string='Clasificación(2194)';$regex='/Clasificación((.*?))/';preg_match($regex,$string,$match);var_dump($match);提前致谢。 最佳答案 您的正则表达式存在三个问题:您没有转义正斜杠。您使用正斜杠作为分隔符,因此如果您想将它用作表达式中的文字字符,则需要将其转义((.*?))不做你认为它做的事。它创建了两个捕

PHP 检查字符串是否在带有 preg_match 的序列中最多包含 30 个字母/数字

我被困在这里,找不到我的问题的任何结果,可能是因为英语不是我的母语。我想匹配序列中最多包含30个字母/数字的行:这甚至可以用preg_match实现吗?preg_match("/[^A-Za-z0-9](max30inasequence)/",$string)字符串:$string="1234567890123456789012345678901234567890";//FALSE$string="sdfihsgbfsadiousdghiug";//TRUE$string="cfgvsdfsdf786sdf78s9d8g7stdg87stdg78tsd7g0tsd9g7t";//FAL