草庐IT

php - 用于匹配值在引号或撇号中的键值对的正则表达式

我想在接下来的2周内完成一个PHP应用程序,但我只是想不出解析某些属性字符串的正则表达式。我得到的随机字符串格式如下:KeyName1="KeyValue1"KeyName2='KeyValue2'单个字符串中可以有任意数量的键值对,值可以用单引号'或双引号"以任意组合分隔字符串(但它们始终被分隔)。键值可以是任意长度,包含任何字符,除了双引号不能在双引号内,单引号不能在单引号内,但双引号可以在单引号内,单引号可以双引号内。键值对之间可以有任意数量的空格,键名和等号以及等号和键值开始的引号字符之间可以有任意数量的空格。我需要将字符串转换成如下所示的数组:$arrayName["KeyN

php - 如何在 preg_replace php 中进行数学运算

我有以下字符串$str=".block_1{width:100px;}.block_2{width:200px;}.block_3{width:300px;}";我想根据这个公式(pixelvalue/960)*100用百分比值替换px值我知道使用这样的正则表达式([0-9]+px)我可以找到所有值+px但是我需要再次运行它用(pixelvalue/960)*100替换它。'%'希望您明白我的意思,感谢您的帮助。好的,这是解决方案:$str=preg_replace_callback('([0-9]+px)',function($matches){return((str_replace

php 使用正则表达式解析 url

我有一个PHP变量,其中包含两种可能的URL之一:$text="http://www.youtube.com/v/wUJQPbALd68?version=3&autohide=1&autoplay=1";$text="http://www.youtube.com/watch?v=IcrbM1l_BoI如何从两种类型的url中提取id?我想我必须使用正则表达式,但我是一个新手。例如,第一个$text是wUJQPbALd68,第二个是IcrbM1l_BoI。非常感谢。 最佳答案 /***getyoutubevideoIDfromURL*

php - 正则表达式匹配逗号之间的文本

我快要发疯了,试图让一个正则表达式来检测用户输入中的垃圾关键字。通常开头是一些正常的文本,结尾是垃圾关键字,用逗号或其他字符分隔。我需要的是一个正则表达式来计算关键字的数量来标记文本以供人工检查。文字通常是这样的:[randomtext,withcommas,dotsandall]keyword1,keyword2,keyword3,keyword4,keyword5,Keyword6,keyword7,keyword8...我尝试了几个正则表达式来计算匹配项:-这只会得到两个关键字中的一个[,-](\w|\s)+[,-]-这也匹配随机文本(?:([^,-]*)(?:[^,-]|$))

php - 如何将双/多个字母替换为单个字母?

我需要将一个单词中出现两次或更多次的任何字母转换为一个单独的字母。例如:School->ScholGoogle->GogleGooooogle->GogleVooDoo->Vodo我尝试了以下方法,但卡在了eregi_replace的第二个参数处。$word='Goooogle';$word2=eregi_replace("([a-z]{2,})","?",$word);如果我使用\\\1替换?,它会显示完全匹配。如何使其成为单个字母?有人可以帮忙吗?谢谢 最佳答案 参见regularexpressiontoreplacetwo(o

PHP 正则表达式 [只接受选定的字符]

我想接受用户输入的字符列表并拒绝其余的。我可以接受格式化字​​符串或查找是否缺少字符/字符串。但是我怎么能只接受一组字符而拒绝所有其他字符。我想使用preg_match来执行此操作。例如允许的字符是:a..z、A..Z、-、’‘用户必须能够以任何顺序输入这些字符。但不允许使用这些字符以外的字符。 最佳答案 使用否定字符类:[^A-Za-z-\w]只有当用户输入的不是该字符类中的内容时,这才会匹配。if(preg_match('/[^A-Za-z-\w]/',$input)){/*invalidcharcterentered*/}

php - Preg_Replace 和 UTF8

我正在增强我们的videosearchpage在结果中突出显示搜索词。因为用户可以输入judaspriest并且视频的文本中包含JudasPriest,所以我必须使用正则表达式来保留原始文本的大小写。我的代码有效,但我遇到了特殊字符如š、č和ž的问题,看来Preg_Replace()只会在大小写相同时匹配(尽管有/ui修饰符)。我的代码:$Content=Preg_Replace('/\b('.$term.'?)\b/iu','$1',$Content);我也试过这个:$Content=Mb_Eregi_Replace('\b('.$term.'?)\b','\\1',$Content

php - `$/i` 在正则表达式中的含义

$/i在下面的php代码中是什么意思?preg_match('/^[A-Z\'.-]{2,20}$/i') 最佳答案 /表示模式结束。i是modifier这使得模式不区分大小写,$anchor匹配字符串的结尾。 关于php-`$/i`在正则表达式中的含义,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/2467304/

php - 需要匹配 “word1, word2, word3” 的正则表达式

我正在尝试构造一个正则表达式来匹配这样的模式:word1,word2,word3所以基本上我希望“,”出现两次并且在它们之间有单词。到目前为止,我想出了:$general_content_check=preg_match("/^.*,.*$/",$general_content);但这只在字符串中多次匹配“,”。有人可以帮我解决这个问题吗? 最佳答案 这取决于你所说的“单词”是什么意思,但你可以先试试这个:^[^,]+(?:,+[^,]+){2}$解释:^Startofline/string.[^,]+A"word"(anythin

php - 有人可以解释这个正则表达式吗?

/^[\p{Ll}\p{Lm}\p{Lo}\p{Lt}\p{Lu}\p{Nd}]+$/mu这是cakePHP用来验证字母数字字符串的正则表达式验证。我无法理解Ll、Lm、Lt等是什么?这是为了验证字母数字字符串,因此他们应该测试数字和字符。谁能稍微解释一下这个表达式。谢谢。 最佳答案 Ll、Lm、Lo、Lt、Lu、Nd是unicode字符类。在页面的大约1/3处查看此处:http://www.regular-expressions.info/unicode.html\p{Ll}or\p{Lowercase_Letter}:alowe