草庐IT

regex_replace

全部标签

php - preg_replace file_get_contents 中不包含单词的所有链接

这个问题在这里已经有了答案:Regularexpressiontomatchalinethatdoesn'tcontainaword(33个答案)关闭9年前。我正在将一个页面读入一个变量,我想禁用地址中不包含单词“remedy”的所有链接。到目前为止,我的代码获取了所有链接,包括带有“补救措施”的链接。我做错了什么?$page=preg_replace('~(.*?)~i','$1',$page);--解决方案--$page=preg_replace('~(.*?)~i','$2',$page);

php - 使用 RegEx 进行多词搜索和匹配

我创建了一个函数来突出显示字符串中的单个单词。它看起来像这样:functionhighlight($input,$keywords){preg_match_all('~[\w\'"-]+~',$keywords,$match);if(!$match){return$input;}$result='~\\b('.implode('|',$match[0]).')\\b~i';returnpreg_replace($result,'$0',$input);}我需要该函数来处理支持搜索中空格的不同单词数组。例子:$search=array("thisneeds","here","canhig

PHP preg_replace string – 括号内的内容

我正在努力理解PHPpreg_replace,想知道您是否可以提供任何指导,说明如何弄清楚如何将单词保留在括号内但从该字符串中删除其他所有内容:Events(Road)所以它会返回:Road我渴望学习,所以不仅需要答案,还需要了解它是如何实现的。我知道如何删除括号(和括号)内的单词:trim(preg_replace('/\s*\([^)]*\)/','','Events(Road)')干杯,R 最佳答案 一种方法是捕获括号内的字符,然后用它替换其他所有字符。$1是对第一个捕获组()的反向引用:preg_replace('/.*\(

javascript - 如果重新加载同一页面,window.location.replace 将不起作用

我正在尝试刷新Ajax成功页面。varlastId="#"+id;window.location.replace("/myurl"+lastId);它正在将正确的URL写入我的浏览器,但我没有看到所做的更改。如果我刷新(F5)页面,我会正确地看到更改,因为ajax已正确发送。所以我认为如果url相同,页面将不会强制刷新。在这个例子中,我已经在http://mypage.com/myurl,它应该将我重定向到http://mypage.com/myurl#38174例如,所以我的浏览器将关注具有id="38174"的DOM元素。正如我所说,如果我提交ajax请求,我的url将更改为htt

php - 需要使用 str_replace 或任何其他方式翻译字符串中的单词

我有一个包含英文字符的XML提要,我需要将其翻译成我的语言。问题是它不是翻译确切的字符串,而是翻译每个相似的词。有没有办法只翻译完整的字符串而不是单词中的所有内容?示例:$string="RedCellisverygood.Conditionisnew.Butnobodybuysit.";$words=["RedCell","Condition","no","Red","new"];$translations=["RedCell","Stav","ne","Červený","nový"];$string=str_replace($words,$translations,$string

PHP RegEx 还原断言以获得相反的匹配

这是我的第一个问题,所以请多多关照:)。我正在尝试构建一个正则表达式来获取一组有效的IP(好的,至少使用正确的IPv4格式)而不是根据RFC1918的私有(private)IP。到目前为止,我已经找到了一种方法恰恰相反,我的意思是成功匹配私有(private)IP,所以我需要的只是一种恢复断言的方法。这是到目前为止的代码://Thisisanexamplestring$ips='10.0.1.23,192.168.1.2,172.24.2.189,200.52.85.20,200.44.85.20';preg_match_all('/(?:10\.\d{1,3}|172\.(?:1[6

Php Regex 排除已经匹配的特定模式

你好,我需要一只手,上面有下面的图案:(?内容..1.0/1.1/1.23/以上模式选择../,1.0/,1.1/,1.23/我不想匹配../,但数字、句点和/的任何排列都应该匹配。请帮帮我。一如既往的感谢。 最佳答案 您可以在现有的正则表达式中放置一个否定的先行断言:(?Seeit 关于PhpRegex排除已经匹配的特定模式,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/125

PHP:preg_replace 使用反向引用替换缩写

我想在PHP中使用preg_replace对以下字符串执行字符替换:DieserTextenthältdiverseAkürzungenwiez.B.,d.h.,u.a.oderm.w.H.输出应该是这样的:DieserTextenthältdiverseAbkürzungenwiez.\,B.,d.\,h.,u.\,a.oderm.\,w.\,H.目前我正在使用这段代码:有没有办法结合这两个正则表达式?当我使用以下表达式时,我无法使用匹配的字符:/([a-z]\.){2,}/i非常感谢任何帮助。 最佳答案 想法是找到所有单个字母+

preg_replace 期间的 PHP 段错误

我正在使用Magento并在管理员回滚数据库期间遇到PHP段错误。我做了调查,发现原因是这样的:preg_replace("/'(\\'|\\\\{2}|[^'])*'/",'',$sql);$sql字符串足够大,我正在附加它。https://drive.google.com/file/d/0B9UbKYbywcABOTRSVG5KRl9La0k/edit?usp=sharing您可以使用这样的脚本来重现问题:可能有人知道这个问题,可以帮我解决吗?附言直接导致问题的类是抽象类Zend_Db_Statement204:208 最佳答案

php - preg_replace 正则表达式不输出任何内容

$str='{author}{content}';$pattern='/\{([a-z_0-9]+)\}/i';$subst=array('author'=>'Mr.Google','id'=>'1239124587123','content'=>'Thisissomesimpletext');$str=preg_replace($pattern,$subst['$1'],$str);echo$str;{text}的每个实例结果都是“”是我在捕获组上做错了什么吗?我用preg_match_all完成了此操作,它返回为{author}和author这是这里的问题吗?