假设有以下字符串:一些文本在这里[baz|foo]和这里[foo|bar|baz]甚至这里[option]。我只成功地匹配了这个丑陋的正则表达式(Regex101.comdemo):/(?:\[(?:\|?([^\|\[\]]+))?(?:\|?([^\|\[\]]+))?(?:\|?([^\|\[\]]+))?\])/ugx重点是我需要用方括号对匹配项进行分组。所以目前我确实有我需要的结果:[{"match":1,"children":[{"group":1,"start":16,"end":19,"value":"baz"},{"group":2,"start":20,"end":
我是php的新手,尤其是正则表达式。我的目标是使用数组中列出的“关键字”提示自动丰富文本。到目前为止我已经来了。$pattern=array("/\bexplanations\b/i","/\btarget\b/i","/\bhints\b/i","/\bhint\b/i",);$replacement=array("explanations(Erklärungen)","targetZiel","hintsHinsweise","hintHinweis",);$string="Targetistoaddsomeexplanations(hints)fromanarraytothist
我正在搜索SO答案,发现大多数用于替换多个空格的解决方案是:$new_str=preg_replace("/\s+/","",$str);但在许多情况下,空白字符包括UTF字符,包括换行符、换页符、回车符、不间断空格等。Thiswiki描述了UTF定义了二十五个定义为空格的字符。那么我们如何使用正则表达式替换所有这些字符呢? 最佳答案 当传递u修饰符时,\s变为Unicode识别。所以,一个简单的解决方案是使用$new_str=preg_replace("/\s+/u","",$str);^^参见PHPonlinedemo.
我无法将此字符串拆分为组件。我的示例字符串是Criminal.Minds.S10E22.WEB-DL.x264-FUM[ettv]。我试图把它分成以下几部分:犯罪心理,10、22。虽然我对perlregex有所涉猎,但php的实现让我感到困惑。我写了以下内容:$word="Criminal.Minds.S10E22.WEB-DL.x264-FUM[ettv]";//Firstreplaceperiodsanddashesbyspaces$patterns=array();$patterns[0]='/\./';$patterns[1]='/-/';$replacement='';$wo
我正在尝试编写一个正则表达式并匹配3个条件,如果满足所有三个条件将返回true。条件1)字符串以“{”开头条件2)字符串在括号之间的某处不包含空格条件3字符串以“}”结尾到目前为止,我已经想出了^{|[]|}$,它会检查空格。但是如果括号之间没有空格,我需要让它匹配。如果字符串以{开头但不以}结尾,这也将返回true,反之亦然。我一直在搞乱regex101.com,但无法弄清楚没有空格的部分。如果字符串中不存在某些东西,有人可以解释如何匹配吗? 最佳答案 看来你需要/^{\S*}$/参见regexdemo.详细信息:^-字符串的开始
我正在寻找仅匹配有效在线URL的正则表达式。例如:exmaple.comhttp://exmaple.comhttps://exmaple.comwww.exmaple.comhttp://www.example.comhttps://www.example.com以及特殊域和扩展名,例如:t.coexample.dealssh.party等等,但不会匹配所有复杂的东西,如ftp、get查询或URL,如2.3.3.1。我一直在使用'#(www\.|https?://)?[a-z0-9]+\.[a-z0-9]{2,4}\S*#i'但它检测到日期,例如3.3.2017。我需要这个,因为我将
任何人都可以帮助完成我的正则表达式吗?我的字符串格式如下:{p:19}Ja?DumöchtestzurKönigin?{p:20}Hmm...DubistgekommenumdenTitelKriegerinzuerhalten?Verstehe.DasistganzschöntapferfürsoeinejungeDame.DieKöniginwirdsicherauchsehrüberraschtsein.{t:19}Bittesehr,gehdirekthinein.{t:20}TreibeDichhiernichtherum,wennDuhiernichtszusuchenha
我正在尝试从URL中删除.php文件扩展名和文件夹&&子文件夹(如果存在)。案例一输入:127.0.0.1/project/folder/alfa.php输出:127.0.0.1/project/alfa案例二输入:127.0.0.1/project/folder/subfolder/beta.php输出:127.0.0.1/project/beta这是我到目前为止得到的:只删除扩展名工作正常,删除文件夹有问题#Turnmod_rewriteonRewriteEngineOnRewriteCond%{REQUEST_FILENAME}!-dRewriteCond%{REQUEST_FI
我正在使用php5来解析字符串。我的输入字符串如下所示:{Billionis|Millionsare|Trillionis}{anextremely|a|agenerously|avery}{tiny|little|smallish|short|small}stageinavast{galactic||large|huge|tense|big|cosmic}{universe|Colosseum|planet|arena}.在下面找到我的最小可行示例:[^\[\]]+)|(?R))*)\]/x',array($this,'replace'),$text);}functionreplac
我是正则表达式的初学者,所以如果这是一个幼稚的问题,我提前道歉!我有一个字符串,其中两个值用逗号分隔:12.345678,23.45678901我正在尝试使用正则表达式(这是一项要求)返回第一个带3位小数的值12.345和第二个带2位小数的值23.45。理想情况下,完整的正则表达式匹配为12.345,23.45我可以使用以下正则表达式获得第一个值12.345:^\d+\.\d{0,3}。这很有效,因为它只返回完整的匹配项(没有第1组匹配项)。但我对如何在同一字符串中返回第二个值23.45感到很困惑。我也试过这个正则表达式:(^.{0,6})(?:.*)(,)(.{0,5}),它正确解析