草庐IT

preg-match

全部标签

php - Preg_replace 错误,当使用不同的语言文本时。 (摆脱线条)

我有这样的内容`மிழர்களிவரறில்யூலைமாதம்என்பதுகனத்தமாதமாகபதிவுசெய்யப்பட்டுள்ளது.குறிபாகஐந்துஆண்ளின்யூலைகள்முக்கியமானவை.1983ம்ஆண்டிற்குமுன்பேயூலைமாதம்தமிழர்களுடன்பின்னிப்பிணைந்து`我想摆脱所有的线,所以我得到这样的东西。மிழர்களிவரறில்யூலைமாதம்என்பதுகனத்தமாதமாகபதிவுசெய்யப்பட்டுள்ளது.குறிபாகஐந்துஆண்ளின்யூலைகள்முக்கியமானவை.1983ம

php - PHP 中的正则表达式 (preg_match) 模式

我创建了一个在Dreamweaver的正则表达式查找中工作的正则表达式模式,但是当放入preg_match的模式时,它失败了。我在PHP(5.1.6)正则表达式规则中违反了什么,否则这些规则在Dreamweaver的解释中有效?这是PHP:preg_match("/(\{a\})([a-zA-Z0-9{}.])+(\{/a\})/i","{a}{900678}{abcde}{0}{0}{0}{/a}");当前返回false。我如何修改模式,使其匹配任何以{a}anythinggoesinthemiddle{/a}类型字符串开头的字符串?我意识到上面的正则表达式不会匹配中间的“任何东西”

php - preg_replace 的贪婪度

echopreg_replace('/:*$/isD',':',':blue:');一个相当简单的PHP正则表达式,旨在捕获字符串末尾尽可能多的冒号(可能根本没有冒号)并仅用一个冒号替换它。或者至少那是我打算要做的。这是输出::blue::我预计,由于preg_replace是贪婪的,字符串末尾的冒号将被捕获,因此我会得到:blue:相反。奇怪的是,使用类似的代码检查字符串开头处的冒号(即/^(:)*/isD)是可行的。我猜这与正则表达式从左到右搜索的事实有关,所以在字符串示例的非工作端,它只找到字符串的末尾,而在字符串示例的工作前端,它是已经找到字符串的开头。也就是说,我可以做些什么

php - PCRE:使用 PHP 捕获可选模式

我有一个字符串,我需要从中捕获一个或两个子字符串(使用PHP):第一个是必填项第二个是可选的第一个和第二个被不知名的垃圾隔开第二个可能会也可能不会跟着更多我不关心的垃圾我无法让我的模式捕获第二个模式,除非我在模式字符串中强制要求它。当主题中只有第一个模式可用时,这会使模式失败。我被难住了。这不应该那么难。这是我从上面得到的:Array([0]=>pattern111[1]=>pattern111[2]=>)似乎归结为我如何使{0,1}(即模式中最后的?运算符)更加贪婪(具有讽刺意味的是,作为量词修饰符,它的作用恰恰相反) 最佳答案

php - 如何使用 PHP 从 HTML 文件中获取元数据?

我正在尝试在我的网站上创建一个用户可以上传链接的功能,例如Digg。我有代码从用户上传到我网站的URL中获取HTML源代码,并将其存储在.txt文件中。然后我想抓取标签中的内容假设这个标签存在。有时它有效,但有时它不起作用,即使该特定网页的源代码包含与我在代码中指定的完全相同的必要元标记。我注意到如果“GRABTHIS”内容包含html实体(&等),它似乎无法正常工作。如果您对如何让它发挥作用有任何想法,请告诉我。这是我的代码:$html_data=file_get_contents($path_to_txt_file_that_contains_html);preg_match('#

php - 如何使用 preg_replace() 删除字符串中多余的星号

我知道如何使用preg_replace()去除多余的空格、破折号和句点,但我需要知道以下哪种格式适合去除字符串中多余的星号。这些代码行用于去除多余的空格、破折号和句点://Stripsoutextraspaces$string=preg_replace('/\s\s+/','',$string);//Stripsoutextradashes$string=preg_replace('/-+/','-',$string);//Stripsoutextraperiods$string=preg_replace('/\.+/','.',$string);以下哪项对于去除多余的星号是正确的?/

php - 使用 preg_match() 显示字符串的前 n 段

下面的代码显示了字符串的第一段,但我希望它显示前三段:preg_match("/(.*)/",$paragraphs,$matches);echo$matches[0];我是正则表达式的新手,所以我一直在努力解决这个问题。有什么想法吗?感谢您的帮助。 最佳答案 你可以使用preg_match_all:preg_match_all("/(.*)/",$paragraphs,$matches);echo$matches[0][0];echo$matches[0][1];echo$matches[0][2];当您使用preg_match_

php - 使用带变量的 preg_replace 获取数据库记录

我正在寻找一种解决方案,我可以使用preg_replace来替换文本正文中的某些字符串,其中一些字符串可能包含一个变量,然后调用数据库来检索替换值(或一个函数来检索该值)。例如,我可能想按如下方式替换以下字符串-斜体中的那个是我正在苦苦挣扎的那个:{today}=>today'sdate{title}=>documenttitle{lang:12}=>from"lang"tableindatabasewhereid=12显然,前两个很容易,但我在学习第三个时遇到困难。我唯一能想到的是替换所有没有冒号的,然后替换所有有冒号的,以触发函数。 最佳答案

php - 来自一些 html 代码的 preg_match

我如何在php中编写phppreg_match()来挑选出250值。我有一大串html代码,我想从中挑选出250个,但我似乎无法正确使用正则表达式。这是我要匹配的html模式-请注意,我要提取250所在的整数:H$250我已经尝试了几个小时来做​​这件事,但我无法让它工作,哈哈 最佳答案 preg_match('/H$(\d+)/i',$your_html,$matches);print"Its".$matches[1]."USD";正则表达式实际上取决于您的代码。您究竟在何处搜索? 关

php - 让我了解 preg_replace

我一直在Internet上寻找一些有用的信息,但我想我找到的太多了。我试图理解正则表达式,但不明白。比方说$data="Abunchoftext[link=123]anotherbunchoftext.",它应该被替换为"123".我已经尝试了很多类似这样的代码:$find="/[link=[([0-9])]/";$replace="$1";echopreg_replace($find,$replace,$data);但输出始终与原始$data相同。我认为我必须了解与我的问题相关的内容,了解基础知识。 最佳答案 去掉()两边多余的[