草庐IT

PHP strip 标点保留撇号

赞PHPstrippunctuation,但我想保留撇号。示例:I'mastudent,butIdon'tliketheschool.I'llquitschool.strip之后的字符串应该是:I'mastudentbutIdon'tliketheschoolI'llquitschool我如何使用正则表达式或其他方式做到这一点? 最佳答案 如果您还想支持所有Unicode标点字符,请使用此正则表达式:$str=preg_replace("#((?!')\pP)+#",'',$str);此正则表达式匹配Unicode标点符号字符类\p

php - Twitter 风格的 URL 正则表达式匹配

我正在尝试为使用PHP的聊天客户端实现非常宽松的正则表达式匹配。聊天客户端必须能够获取完整和不完整的URL。例如:http://www.example.com或www.example.com或example.com我已经设置了一个preg_replace来尝试实现这一点:$find=array("/([\w]+:\/\/[\w-?&;#~=\.\/\@]+[\w\/])/is","/(^(?!http:\/\/)[a-zA-Z0-9\-\.]+\.[a-zA-Z]{2,4}(\/?\S*)?)/is");$replace=array("\\1","\\1");$output=preg_

php - 正则表达式匹配以 %% 开头和结尾的字符串

我有一段文本多次出现这种格式的变量:Exampletextwill%%include%%these%%parameters%%我正在尝试使用这个:preg_match('/%%[\s\S]*?%%/i',$output,$matches);但出于某种原因,我只得到了第一场比赛,有什么想法吗? 最佳答案 使用preg_match_all因为您需要多个匹配项。 关于php-正则表达式匹配以%%开头和结尾的字符串,我们在StackOverflow上找到一个类似的问题:

php - 正则表达式和口音/波浪号

我应该如何在正则表达式中包含重音符号?我想检测来自a-z和äáàëéèíììöóòúùñç的字母,但此正则表达式不起作用:$pattern='/^([a-zäáàëéèíìöóòúùñç])/i'; 最佳答案 您可以尝试使用预定义的类来匹配所有字母,例如:[\p{L}]这适用于大多数正则表达式引擎。您可以在此处阅读有关正则表达式中unicode的更多信息,例如:http://www.regular-expressions.info/unicode.html 关于php-正则表达式和口音/

PHP - 用于从 CSS 文件中提取所有图像路径的正则表达式

我试图找到正则表达式,它会从css文件中提取所有路径。我已经搜索过了,我能找到的只有这两篇文章,它们实际上似乎不起作用:PHP-extractimagepathsfromcssWhydoesn'tthisPHPregularexpressionextracttheurlfromthecssvalue?我想要得到的是这样的数组:array(0=>'image/header.gif',1=>'image/footer.png')etc.知道提取它的正则表达式是什么-请记住,字符之间可能没有空格,或者url()的左括号和右括号之间可能还有一个额外的空格.我正在使用以下内容来处理css并提取路

php - 匹配变量中的第一个和最后一个完整单词

我使用phppreg_match将变量中的第一个和最后一个单词与给定的第一个和最后一个特定单词匹配,例子:$first_word='t';//Iwanttoforce'this'$last_word='ne';//Iwanttoforce'done'$str='thisfunctioncanbedone';if(preg_match('/^'.$first_word.'(.*)'.$last_word.'$/',$str)){echo'true';}但问题是我想在(开始和结束)处强制匹配整个单词,而不是第一个或最后一个字符。 最佳答案

PHP preg_replace_callback,仅替换 1 个反向引用?

使用preg_replace_callback,是否可以只替换一个反向引用?还是我必须退回整件东西?我只是想用引号将token的默认值括起来。$str='Thisisa{$token|tokenwasempty}';$str=preg_replace_callback('~{\$\w+\|(.*)?}~i',function($match){//$match[1]is"tokenwasempty"//Iwanttojustreplace$match[1],butitneedsmetoreturnthewholething},$str);我是否必须获取更多反向引用才能构建新版本的toke

php - 在 PHP 中使用正则表达式进行 iOS 检测

我来到这里寻找通过用户代理嗅探iOS6的答案,并在这里找到了一个很好的答案:HowtodetectiOS6andallminorversionsbyuseragent?我以前使用过的所有正则表达式都非常简单,我正在用头撞墙试图让这个正则表达式正常工作。不幸的是,PHP解析器没有给我任何错误!我知道我确实做错了什么,因为我在我的笔记本电脑上运行firefox时匹配了下面的代码。如果有人能在这里指出我正确的方向,我将不胜感激,我不知道我做错了什么。$subject=$_SERVER['HTTP_USER_AGENT'];$pattern='~^(?:(?:(?:Mozilla/\d.\d\

php - 匹配和删除字符串中的推特主题标签

只有当主题标签不在字符串末尾的任何位置时,我才需要从主题标签中删除#字符。示例:I'mgoingto#Disneythismonth!#WDWI'mgoingto#Disneythismonth.#WDW#OrlandoI'mgoingto#Disneythismonth#WDW#Orlando它们需要转换为:I'mgoingtoDisneythismonth!I'mgoingtoDisneythismonth.I'mgoingtoDisneythismonth此代码将删除所有#个字符:functionremove_hashtags($string){$result=preg_repl

php - PHP正则表达式只能获得前导数字

我试图用php编写一个正则表达式来获取字符串的前导数字。即“48C1”。我只想抓住“48”。有了“4891c3c”,我想捕捉“4891”。有人能帮我一下吗? 最佳答案 尝试if(preg_match('/^\d+/',$string,$match))echo$match[0];从$string中获取第一个数字。正则表达式解释:^表示“字符串的开始”\d表示“任何数字”(0-9)+表示“重复1次或多次” 关于php-PHP正则表达式只能获得前导数字,我们在StackOverflow上找到一