草庐IT

php - 命名捕获对的正则表达式问题

我有以下值:start=2011-03-10T13:00:00Z;end=2011-03-30T13:00:00Z;scheme=W3C-DTF我使用以下正则表达式去除“开始”和“结束”日期并将它们分配给它们自己命名的捕获对:#^start=(?P.+);end=(?P.+);#ix'可能不是绝对最好的REGEX,但如果同时存在“开始”和“结束”值,它就足够好用了。现在,如果缺少“expirationDate”,我仍然需要匹配“publishDate”,反之亦然。我怎样才能使用一个表达式来做到这一点?我不是最擅长正则表达式的人,而且我开始涉足更高级的东西,因此非常感谢对此的任何帮助。谢

php - 获取字符串部分的正则表达式

我有一些类似的字符串Shp1,737PlentyRd,MillParkVIC3082560HighSt,PrestonVIC3072217MicklehamRd,TullamarineVIC3043从这些我需要“VIC”。谁能帮助我找到使用正则表达式或php字符串函数的解决方案这是实际的字符串...从excel表中读取我想要这些字符串中的州名称,例如NSW、ACT、VIC等 最佳答案 preg_match_all('/(?P[A-Z]{2,3})\s\d{4}$/m',$str,$matches);var_dump($matches

php - 使用 preg_replace 返回引用数组键并替换为值

我有这样一个字符串:http://mysite.com/script.php?fruit=apple我有一个这样的关联数组:$fruitArray["apple"]="green";$fruitArray["banana"]="yellow";我正在尝试在字符串上使用preg_replace,使用数组中的键来反向引用apple并将其替换为绿色,如下所示:$string=preg_replace('|http://mysite.com/script.php\?fruit=([a-zA-Z0-9_-]*)|','http://mysite.com/'.$fruitArray[$1].'/'

php - 帮助使用 PHP 正则表达式提取字符串周围的文本

我正在尝试使用正则表达式,但它让我伤透了脑筋。我会认为我有它,脚本就坏了。我需要尝试为人们提供一种通过短信报告位置的方法。我让他们给我发一个字符串,如下所示:Igiveup,stoppingforthenight.FindmeatMainStreetandPine,Atlanta,GA.我想打破它在找到我。我需要捕获右侧的所有内容(基本上是他们的街角)并且我需要能够检测他们是否没有为Find使用正确的大写。有什么建议吗? 最佳答案 preg_match("/[Ff]indmeat(.+)/","Igiveup,findmeatstr

php - 使用正则表达式解析方括号

我在使用正则表达式时总是遇到困难。我已经为此寻求帮助,但我无法完全找到我要找的东西。我有遵循这种模式的文本block:[php]...这里有任何类型的代码示例[/php]我需要:检查方括号,它可以包含任意数量的20-30种编程语言名称(php、ruby等)。需要抓取左括号和右括号之间的所有代码。我已经计算出以下正则表达式:#\[([a-z]+)\]([^\[/]*)\[/([a-z]+)\]#i这与一切都很相配。但是,当代码示例包含方括号时,它会中断。我该如何修改它,以便匹配那些左/右大括号之间的任何字符供以后使用? 最佳答案 这是

php - 一个 6 种场景的 url 重写规则

我有一个适用于我的索引页的重写规则RewriteRule^index$index.php[L]RewriteRule^index/$index.php[L]RewriteRule^index/page/(0?[1-9]|1[0-2])$index.php?recordstart=$1[L]RewriteRule^index/page/(0?[1-9]|1[0-2])/$index.php?recordstart=$1[L]我有6个页面具有类似的场景。例如。RewriteRule^graduate$graduate.php[L]RewriteRule^graduate/$graduate

php - 需要正则表达式在长词中添加空格但忽略 HTML 标记和属性

我需要在产品描述中用户提供的位置(例如25)处的单词中添加空格,以允许正确换行。我知道可以使用CSS技巧,但这不是我想要的。到目前为止,我可以使用这种语法来执行此操作,但我遇到的问题是它正在拆分不应拆分的内容,例如HTML标记属性中的URL。$string='longwordlongwordlongwordsomeanchortextandtitlehere';$spacer=20;$newtext=preg_replace('/([^\s]{'.$spacer.'})(?=[^\s])/m','$1',$newtext);结果是这样的....longwordlongwordlongw

php - 处理拆分 Windows 或 Linux 路径的最佳方法

我有两个字符串:C:\Users\Bob\MyDocuments/Users/Bob/Documents我已经想出了这个正则表达式:preg_split('/(?会返回Array([0]=>C:\[1]=>Users\[2]=>Bob\[3]=>MyDocuments)Array([0]=>/[1]=>Users/[2]=>Bob/[3]=>Documents)不过,我正在寻找Array([0]=>C:\[1]=>Users[2]=>Bob[3]=>MyDocuments)Array([0]=>/[1]=>Users[2]=>Bob[3]=>Documents)即尾部斜杠不存在于更正的

php - 正则表达式在每个 {space} 上拆分字符串,但不包含在引号中

我不太擅长正则表达式(事实上根本不懂)。我需要从在空格处拆分的字符串创建一个数组,但仅当空格不在双引号内时才需要这样:this.line"shouldbe3"elements看起来像:this.lineshouldbe3elements我知道我可以使用preg_match来获取数组,但我对正则表达式一无所知。p.s我查看了StackOverflow中的其他解决方案,但正则表达式似乎不适用于我的preg_match。谢谢。 最佳答案 你可以试试这个:preg_match_all('/"[^"]+"|\S+/',$s,$matches)

php - 如何将cid链接转换为http链接?

我正在编写一个应用程序来解析来自pop3邮箱的电子邮件。我已经提取了消息的附件,现在我想转换消息文本中的链接。也就是说我有这个:src="cid:image001.png@01CC9ED6.84327130"我想要类似的东西:src="http://xxx/image001.png"你能帮我用正则表达式吗?preg_replace('/cid:/','http://xxx')现在如何删除'@'之后的序列?谢谢 最佳答案 尝试:$input='src="cid:image001.png@01CC9ED6.84327130"';$out