草庐IT

PHP - 删除重复的音节词

我是新手,想知道如何在PHP中使用正则表达式。如果我有像"haha""abcabcabc""hehehe""cupcupcup"这样的文本(包含重复的音节词)。如何删除该文本?(比如$text="cupcupcup";),如何让它像$text="";)很抱歉,如果有同样的问题(我有搜索,但找不到描述我的问题的页面)感谢您的赞赏。:) 最佳答案 尝试$txt=preg_replace("/^(.*)(\\1+)$/","",$txt);这会在字符串的开头搜索一个序列,然后匹配该字符串的至少一个重复项,然后匹配字符串的结尾。例如$txt

php - 正则表达式环视

尝试匹配一个不包含在星号内的词。这是我得到的:(?问题是它不匹配*word或word*因为我希望它匹配除*word*之外的所有排列. 最佳答案 尝试这个解决方案,应该匹配任何单词,而不仅仅是“单词”:(?这里的关键是寻找可能出现星号的两种情况,即在单词的开头或。 关于php-正则表达式环视,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/17164373/

PHP,将带括号的字符串转换为数组

我正在查询一个API,它发送一个JSON响应,然后我将其解码为一个数组。这部分工作正常,但API以一种相当不友好的格式发送信息。我将粘贴我遇到问题的部分。本质上,我正在尝试将每个like键更改为它们自己的数组。Array([name]=>Name[address]=>123StreetRd[products[0][product_id]]=>1[products[0][price]]=>12.00[products[0][name]]=>ProductName[products[0][product_qty]]=>1[products[1][product_id]]=>2[produc

php - 使用正则表达式查找和替换注释 block 中的(部分)字符串

我正在尝试查找可以出现在评论block中的特定字符串。该字符串可以是一个词,但也可以是一个词的一部分。例如,假设我正在寻找“codex”这个词,那么这个词应该被替换为“bindex”,但即使它是一个词的一部分,比如“codexing”。这应该更改为“bindexing”。诀窍是,只有当这个词位于commentblock内时才会发生这种情况。/*Loremipsumdolorsitamet,codexconsecteturadipiscingelit.*/Thisword-->codexshouldnotbereplaced/*Loremipsumdolorsit*amet,codexc

php - 在大写字母前加下划线

关闭。这个问题不符合StackOverflowguidelines.它目前不接受答案。要求提供代码的问题必须表现出对所解决问题的最低限度理解。包括尝试过的解决方案、为什么它们不起作用,以及预期结果。另请参阅:StackOverflowquestionchecklist关闭9年前。Improvethisquestion如何在字符串中所有大写字母前添加下划线(_)?PrintHello将变为:Print_HelloPrintHelloWorld将变为:Print_Hello_World

php - wordpress formatting.php - 修复双破折号

我对wordpress有疑问,因为它会自动将双“--”转换为长破折号。按照这篇短文中的建议,我找到了一个快速修复方法:Wordpress-Fixdoubledashproblem唯一的问题是,从我的网络浏览器中在线wordpress的仪表板中,我无法弄清楚在哪里/如何找到文件wordpress/wp-includes/formatting.php需要对其进行编辑以解决问题。我还检查了关于wordpress的其他答案,例如howtomodifydateformatinwordpresslistcommentsHowtocustomizeDateFormatinWordpressWordp

PHP - 用于删除所有事件属性的正则表达式

经过数小时的尝试,我来这里询问。我想从发布的文本中删除所有出现的js事件属性和样式属性。它可能包含也可能不包含新行。发布示例文本:googleisasearchengine.Thereareotherenginestoo.yahooisanotherengine.第一次尝试:$pattern[0]='/(]+)on.*=".*?"/iU';$replace[0]='$1';$pattern[1]='/(]+)style=".*?"/iU';$replace[1]='$1';$out=preg_replace($pattern,$replace,$in);输出:yahooisanothe

php - 正则表达式在第一个找到的子模式处停止

让我们考虑接下来的两个例子。preg_match('/^(\pL+)(?:bcd|cd|d)$/u','abcd',$matches);preg_match('/^(\pL+)(?:d|cd|bcd)$/u','abcd',$matches);两个示例都将“abc”作为$matches[1]返回。为什么正则表达式不会在非匹配组中首次找到子模式时停止?是否可以在“bcd”处停止并获得“a”作为$matches[1]? 最佳答案 为了完成其他答案,这是对所发生情况的示意图描述:str|pattern|state|description-

php - 使用可选引号解析键值对

我正在尝试从PHP中的字符串中解析出键值对。空格分隔符,引用/不引用被空格包围这是我的尝试。preg_match_all("/(\w+)[\s]*=[\s]*(([^'\s]+)|'([^']*)')/",$文本,$matches);问题在于它用([^'\s]+)和'([^']*)'填充了两个不同的数组进一步的改进也将允许双引号,但我的任何尝试都失败了。 最佳答案 使用非捕获组会有所帮助。它可以作为对原始正则表达式的一个小修改来完成-(\w+)[\s]*=[\s]*((?:[^'\s]+)|'(?:[^']*)')^^^^这使得任一

php - 在分号上拆分 php 中的 sql 语句(但不在引号内)

当用户在自由格式字段中使用分号时,我的系统会导致错误。我将其追溯到一个简单的爆炸语句:$array=explode(";",$sql);因为这一行在一个从整个系统调用的子例程中,所以我想用可以正确拆分的东西替换这一行,而不会破坏系统的其余部分。我以为我是str_getcsv的赢家,但这也不够复杂。看下面的例子$sql="BEGIN;INSERTINTOTABLE_A(a,b,c)VALUES('42','12','\'ab\'c;DEF');INSERTINTOTABLE_B(d,e,f)VALUES('42','43','XY\'sZ;uvw')ONDUPLICATEKEYUPDAT