草庐IT

substring-match

全部标签

PHP 正则表达式 : How to match\r and\n without using [\r\n]?

我已经测试了\v(垂直空白)以匹配\r\n及其组合,但我发现\v不匹配\r和\n。下面是我正在使用的代码..$string="Test";if(preg_match("#\v+#",$string)){echo"Matched";}else{echo"NotMatched";}更清楚地说,我的问题是,是否有任何其他替代方法可以匹配\r\n? 最佳答案 PCRE和换行符PCRE有过多的与换行相关的转义序列和替代品。好吧,您可以在此处使用的一个漂亮的转义序列是\R。默认情况下\R将匹配Unicode换行符序列,但它可以使用不同的替代方案

php - 在最后使用带有特殊字符的 PHP 的 substr() 会导致问号

当我在PHP中使用substr()函数时,当最后一个字符是特殊字符(如ë或ö等...$introtext=html_entity_decode($item->description,ENT_QUOTES,"UTF-8");$introtext=substr($introtext,0,200);我怎样才能避免这种情况? 最佳答案 如果您的字符串具有多字节编码(如UTF-8),您应该使用mb_substr为了避免这样的问题:$introtext=mb_substr($introtext,0,200);

php - 如何使用 preg_match_all() 获取子组匹配的所有捕获?

这个问题在这里已经有了答案:Getrepeatedmatcheswithpreg_match_all()(6个回答)关闭3年前。更新/注意:IthinkwhatI'mprobablylookingforistogetthecapturesofagroupinPHP.引用:PCREregularexpressionsusingnamedpatternsubroutines.(仔细阅读:)我有一个包含可变数量段的字符串(简化):$subject='AABBDD';//couldbe'AABBDDCCEE'aswell我现在想匹配段并通过匹配数组返回它们:$pattern='/^(([a-z

PHP substr 但保留 HTML 标签?

我想知道是否有一种优雅的方式来修剪一些文本,但同时又能识别HTML标记?例如,我有这个字符串:$data='sometitletextherethatcouldgetverylong';假设我需要在页面上返回/输出这个字符串,但希望它不超过X个字符。假设这个例子是35。然后我使用:$output=substr($data,0,20);但现在我最终得到:sometitletextherethat如您所见,结束强标签被丢弃,从而破坏了HTML显示。有没有办法解决这个问题?另请注意,字符串中可能有多个标签,例如:sometexthereandhere 最佳答案

PHP mb_substr() 无法正常工作?

这段代码printmb_substr('éxxx',0,1);打印一个空白空间:(它应该打印第一个字符,é。然而,这似乎有效:printmb_substr('éxxx',0,2);但是不对,因为(0,2)表示2个字符... 最佳答案 尝试将编码参数传递给mb_substr,如下所示:printmb_substr('éxxx',0,1,'utf-8');永远不会自动检测到编码。 关于PHPmb_substr()无法正常工作?,我们在StackOverflow上找到一个类似的问题:

PHP preg_replace : Case insensitive match with case sensitive replacement

我在PHP中使用preg_replace来查找和替换字符串中的特定单词,如下所示:$subject="Appleapple";printpreg_replace('/\bapple\b/i','pear',$subject);结果为'pearpear'。我想做的是以不区分大小写的方式匹配一个单词,但在替换它时尊重它的大小写-给出结果“Pearpear”。以下工作,但对我来说似乎有点啰嗦:$pattern=array('/Apple\b/','/apple\b/');$replacement=array('Pear','pear');$subject="Appleapple";print

php - 将 ereg() 更改为 preg_match() 时的故障排除 "Delimiter must not be alphanumeric or backslash"错误

这个问题在这里已经有了答案:关闭11年前.PossibleDuplicate:Convertingeregexpressionstopreg';?>我得到了这个错误Deprecated:Functionereg()isdeprecatedinC:\ProgramFiles\EasyPHP-5.3.8.1\www\m\img.phponline5Deprecated:Functionereg()isdeprecatedinC:\ProgramFiles\EasyPHP-5.3.8.1\www\m\img.phponline6preg_match()函数给出此错误Warning:preg_

php preg_match 非贪婪?

这个问题在这里已经有了答案:Howtogettheshortestratherthanlongestpossibleregexmatchwithpreg_match()(3个答案)关闭3年前。我有一个字符串(来自一个文件):ILX(Newfor2013!)Overview:TheleastexpensiveroutetoHonda'spremium-labelgoodnessDrivetrain:Twofour-cylinderenginestochoosefromaswellasagas-electrichybrid;front-wheel-driveonly.如何获取字符串:$wr

PHP preg_match 查找整个单词

我对正则表达式很陌生。你能帮我创建一个匹配整个单词的模式,包含特定部分吗?例如,如果我有一个文本字符串“执行正则表达式匹配”,并且如果我搜索express,那么如果我搜索,它就会给我expressionform,它应该给我Perform等等。明白了吗? 最佳答案 preg_match('/\b(express\w+)\b/',$string,$matches);//matchesexpressionpreg_match('/\b(\w*form\w*)\b/',$string,$matches);//matchesperform,/

PHP preg_match - 只允许字母数字字符串和 - _ 字符

我需要正则表达式来检查字符串是否只包含数字、字母、连字符或下划线$string1="Thisisastring*";$string2="this_is-a-string";if(preg_match('******',$string1){echo"String1notacceptableacceptable";//String2acceptable} 最佳答案 代码:if(preg_match('/[^a-z_\-0-9]/i',$string)){echo"notvalidstring";}解释:[]=>字符类定义^=>否定类a-