我要用PHP建立一个多语言网站,需要有一个preg_match来传递所有Unicode字符和数字。即我需要它来传递英文字母、西类牙文字母、意大利文字母,正如您可能知道的那样,我不想传递其他字符,例如'"_-和...我想要这样的东西:$pattern='/^[unicodecharswithout\'-_;?]*$/u';if(!preg_match($pattern,$url))echo#error; 最佳答案 字母的Unicode属性是\pL所以在preg_match中:preg_match('/^\pL+$/u',$string
我遇到了一个关于preg_match()和反斜杠的奇怪问题。我正在尝试检查非法字符的用户名。它适用于几乎所有东西,但显然像“BobDobbs”这样的用户名正在通过。我已经设法使用strpos()轻松地解决了这个问题,但我仍然不确定我的语法有什么问题。运行PHP5.3.10。$displayname='BobDobbs\\\\';if(preg_match("/[^A-z0-9_.-]/",$displayname)){$errors[]='Namecontainsillegalcharacters';} 最佳答案 范围A-z包含\字
这个问题在这里已经有了答案:MatchingUTFCharacterswithpreg_matchinPHP:(*UTF8)WorksonWindowsbutnotLinux(3个答案)关闭9年前。我正在尝试为任何给定的字符串创建一个正则表达式。目标:删除所有不是“latin”或“lowercasegreek”或“numbers”的字符".到目前为止我做了什么:[^a-z0-9]这非常适合拉丁字符。当我尝试这个时:[^a-z0-9α-ω]运气不好。有效但遗漏了任何其他符号,如!!#$%@%#$@,`我对正则表达式的了解有限。任何帮助将非常感激!编辑:下面发布的是匹配指定字符并从中创建一
我正试图找到一个匹配以下内容的正则表达式:.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上的基础知识后尝试了这
我已经跑了preg_quote('')检查这些字符是否需要在正则表达式中转义,令我惊讶的是,它们转义了:\.为什么这些字符需要转义?它们在正则表达式中的含义是什么? 最佳答案 在用于定义后视时具有重要意义((?匹配前面没有bar的foo)和>都用于命名子模式,如下所示:preg_match("/(?\d{3})-(?\d{3})-(?\d{4})/",$number,$m);//nowelementsoftheUSphonenumberarein$m['area'],$m['sub']and$m['num']因此,因为它们在与其他符
关闭。这个问题不符合StackOverflowguidelines.它目前不接受答案。要求提供代码的问题必须表现出对所解决问题的最低限度理解。包括尝试过的解决方案、为什么它们不起作用,以及预期结果。另请参阅:StackOverflowquestionchecklist关闭9年前。Improvethisquestion我正试图找到一种方法来替换这样的文本:texthereABC-sometexthere-CEDtexthere到texthereABC-replacedtext-CEDtexthere或------------------------------------texthere
您好,我开始学习php正则表达式并遇到以下问题:我需要提取$string中的数字。我使用的正则表达式返回“NULL”。$string='Clasificación(2194)';$regex='/Clasificación((.*?))/';preg_match($regex,$string,$match);var_dump($match);提前致谢。 最佳答案 您的正则表达式存在三个问题:您没有转义正斜杠。您使用正斜杠作为分隔符,因此如果您想将它用作表达式中的文字字符,则需要将其转义((.*?))不做你认为它做的事。它创建了两个捕
我被困在这里,找不到我的问题的任何结果,可能是因为英语不是我的母语。我想匹配序列中最多包含30个字母/数字的行:这甚至可以用preg_match实现吗?preg_match("/[^A-Za-z0-9](max30inasequence)/",$string)字符串:$string="1234567890123456789012345678901234567890";//FALSE$string="sdfihsgbfsadiousdghiug";//TRUE$string="cfgvsdfsdf786sdf78s9d8g7stdg87stdg78tsd7g0tsd9g7t";//FAL
我想使用预匹配提取所有换行的文本值所以background:url("images/gone.png");color:#333;...background:url("images/good.png");font-weight:bold;从上面的字符串,我要抢images/gone.pngimages/good.png正确的命令行是什么? 最佳答案 在php中,你应该这样做:$str=然后,你会看到这样的输出:array(2){[0]=>array(2){[0]=>string(22)"url("images/gone.png")"[
我使用两个正则表达式从MySQL查询中提取分配并使用它们创建审计跟踪。其中一种是“挑剔”的,需要引用列名称等,另一种则不需要。它们都经过测试并正确解析出值。我遇到的问题是,对于某些查询,“挑剔”的正则表达式实际上只会导致Apache出现段错误。我尝试了多种方法来确定这是将正则表达式留在代码中的原因,并且只是修改条件以确保它没有运行(以排除某种编译时问题或其他问题).没有问题。只有当它针对特定查询运行正则表达式时才会出现段错误,而且我找不到任何明显的模式来告诉我原因。有问题的代码:if($picky)preg_match_all("/[`'\"]((?:[A-Z]|[a-z]|_|[0-