草庐IT

PHP 正则表达式 : matching a word or sentence inside a html <p> BUT NOT inside <div> <img> <a> tags

我正在尝试匹配和替换html文档中的大约100个单词,为每个单词创建链接。出于性能原因,我认为DOM操作会比preg_replace慢。问题是我希望能够匹配(和替换)简单的单词(或句子)INSIDEtagsBUTNOTinsideanyothertagnor.我正在使用这个正则表达式来匹配单词“sapien”:/(]*>)(.*)(?!]+>[^]+)(?!=\"[\w]*)(\bsapien\b)(?![^]+)(?![^\w]*\")(.*)()/imU这是我应用它的文本:Crascursusconsequatnibhsapienacvehicula.Sederatsapien,c

php - 正则表达式 - 如何用逗号分割字符串,省略括号中的逗号

我有一个字符串,说:$str="myTemplate,testArr=>[1868,1869,1870],testInteger=>3,testString=>'test,cancontainacomma'"它基本上表示我需要解析的以逗号分隔的参数列表。我需要用逗号在PHP中(可能使用preg_match_all)拆分这个字符串(但省略括号和引号中的那些)所以最终结果将是以下四个匹配项的数组:myTemplatetestArr=>[1868,1869,1870]testInteger=>3testString=>'test,cancontainacomma'问题出在数组和字符串值上。因

t.me 链接的 php 正则表达式

我需要一个正则表达式php代码来检测如下链接:t.me/joinchat/AAAAAEEYZxAYyxhdag6z6g我试过了:$String=preg_replace("/[t.me][a-zA-Z0-9\-\.]+\.[a-zA-Z]{2,3}(\/\S*)?/","",$String);我需要使用preg_replace但上面的代码不起作用:(我该怎么办? 最佳答案 根据您的链接结构,此正则表达式可能有效:t\.me\/[-a-zA-Z0-9.]+(\/\S*)?演示:https://regex101.com/r/wEvuBu

php - 在 preg_match_all() 中需要一些关于正则表达式的帮助

所以我需要从字符串中提取票号“Ticket#999999”。我该如何使用正则表达式来执行此操作。如果我在Ticket#9999中有多个号码,我当前的正则表达式可以正常工作。但是如果我只有Ticket#9,它就不起作用了,请帮忙。当前正则表达式。preg_match_all('/(Ticket#[0-9])\w\d+/i',$data,$matches);谢谢。 最佳答案 在您的模式中,[0-9]匹配1个数字,\w匹配另一个数字,\d+匹配1+个数字,因此#后需要3位数字。使用preg_match_all('/Ticket#([0-9

php - 正则表达式在字符串中查找特定单词

好吧,我一直在搜索和测试,但我不知道如何执行以下操作:我有这段文字:*Intro*|[C]–[G]–[Am]–[F]–[Dm]–[G]*VERSE1*=[C][G][Am]=cu{a}ntoheesp{e}radoestemo{m}ento|[F]–[F]–[Dm]–[F]–[Dm]–[G]我需要找到[]中的所有单词,但只能从以“|”开头的行中找到我知道使用:^\|.*将从头到尾查找行,并使用:\[(.*?)\]将选择所有括号及其内容但我不知道怎么说找到这个^\|.*并在结果中应用这个\[(.*?)\]为什么不一步一步来?因为我想使用preg_replace来用HTML标签包裹这个词。

php - 正则表达式:提取并匹配两个字符之间的特定单词

我需要从字符串中提取匹配(way、road、str和street)前后每个单词的单词,直到前面的逗号“,”字符或数字。示例字符串:1.YeetRoad,OffMandyPlantWay,MandoGRA.2.3A,SleekDrive,OffTrembleRakeStreet。3.57RadishSlistRoadIkoyi结果应尽可能接近:怡路曼迪普兰特路TrembleRake街RadishSlistRoadIkoyi根据一些堆栈答案,这是我目前拥有的:(?如有任何帮助,我们将不胜感激。 最佳答案 您可以尝试这样的操作(使用ign

php:如何使用掩码正则表达式交换字母

在以辅音簇或辅音开头的单词中,我需要使用正则表达式将辅音(簇)放在单词的末尾。例如:bbber->er-bbb,bert->ert-b,avokado->avokado//ifwordbeginswithconsonantletterif(preg_match("/\b[b-df-hj-np-tv-xz]/i",$word)){returnpreg_replace(??????);} 最佳答案 你可以使用preg_replace:$repl=preg_replace('/^([b-df-hj-np-tv-xz]+)([a-z]+)$

php - 在 PHP 中使用 DOMDocument 的正则表达式

考虑以下PHP片段:LoremIpsumissimplydummytextLoremIpsumissimplydummytextCheckoutthevideohere!.LoremIpsumhasbeentheindustry'sstandarddummytexteversincethe1500s,whenanunknownprintertookagalleyoftypeandscrambledittomakeatypespecimenbook.Ithassurvivednotonlyfivecenturies,butalsotheleapintoelectronictypesett

php - 为什么这个正则表达式模式不匹配?

这个问题在这里已经有了答案:Greedyvs.Reluctantvs.PossessiveQualifiers(7个答案)CansomeoneexplainPossessiveQuantifierstome?(RegularExpressions)(1个回答)关闭5年前。Regex101链接:https://regex101.com/r/MsZy0A/2我有以下正则表达式模式;.++b测试数据如下;aaaaaaaacaeb。我不明白的是“所有格量词”。我读过它不会回溯,它通常会这样做。但是,我认为无论如何都不必回溯?它只需要匹配包括“b”在内的所有内容,“b”将匹配两次,因为.+匹配所

php - 使用正则表达式在 php 中过滤一些波斯语单词

我正在编写一个脚本,用于识别短信中的冒犯性词语。问题在于,有时用户会对单词进行一些更改,使其无法识别。我的代码也必须能够尽可能地识别那些。首先,我将所有非alnum字符替换为空格。然后:我写了两个正则表达式模式。一种是从字符串中删除重复字符。例如:用户写了:seeeeex,它替换为sex:preg_replace('/(.)\1+/','$1',$text)此正则表达式适用于英语单词,但不适用于波斯语单词,这是我的情况。例如,如果你写:阿拉伯语它对它没有任何作用。我也试过了mb_ereg_replace但是也没用。我的另一个正则表达式是删除所有单字母单词周围的空格。例如:我希望它将SE