草庐IT

regex-compat

全部标签

PHP:转义 RegEx 保留字符 - 有人知道这有什么问题吗?

我正在尝试使用反斜杠转义正则表达式保留的字符(不要问-足以说明我不是在尝试解析HTML:))而且我遇到了一些奇怪的事情。$regex_chars=array('[','\\','^','$','.','|','?','*','+','(',')');$regex_chars_escaped=array('\[','\\\\','\^','\&','\.','\|','\?','\*','\+','\(','\)');$escaped_string=str_replace($regex_chars,$regex_chars_escaped,implode("",$regex_chars)

用于 url 字符串的 PHP RegEx

示例字符串:accuracy-is-5accuracy-is-5-or-15accuracy-is-5-or-15-or-20package-is-dip-8-or-dip-4-or-dip-16我当前的正则表达式:/^([a-z0-9\-]+)\-is\-([a-z0-9\.\-]*[a-z0-9])(?:\-or\-([a-z0-9\.\-]*[a-z0-9]))*$/U没有固定长度,部分:\-or\-[a-z0-9\.\-]可以重复。Bot现在从字符串"accuracy-is-5-or-15-or-20"我得到:Array([0]=>accuracy-is-5-or-15-or-

php - 来自嵌入代码的 YouTube Vimeo 视频 ID 或来自带有 PHP 正则表达式 RegEx 的 URL

我想通过其嵌入代码或从URL获取YouTube或Vimeo的视频ID,是否有使用PHP执行此操作的解决方案? 最佳答案 你可以使用preg_match获取ID。我将在这个答案的后面部分介绍表达式本身,但这里是如何使用preg_match的基本思想:preg_match('expression(video_id)',"http://www.your.url.here",$matches);$video_id=$matches[1];以下是您询问的每种可能输入类型的表达式分割。我为每个显示一些测试用例和结果的链接添加了一个链接。对于Yo

php regex检测括号内的文本忽略嵌套括号

我正在尝试使php正则表达式工作,该正则表达式解析括号中文本的字符串,同时忽略可能的嵌套括号:假设我想要Loremipsum[1.dolorsitamet,[consectetueradipiscing]elit.].Aeneancommodoligulaegetdolor.[2.Dolor,[consectetueradipiscing]elit.]Aeneanmassa[3.Loremipsum]dolor.返回[1]=>"dolorsitamet,[consectetueradipiscing]elit."[2]=>"Dolor,[consectetueradipiscing]e

php - 将逗号(,)替换为点(.)RegEx php

我正在尝试这段代码,但我得到了这个错误:Noendingdelimiter'/'found$form="2000,50";$salary=preg_replace('/',','.'/',$form);//Noendingdelimiter'/'foundecho$salary;我不确定正则表达式验证。 最佳答案 正则表达式对于仅替换单个字符来说太过分了。为什么不直接这样做呢?str_replace(',','.',$form); 关于php-将逗号(,)替换为点(.)RegExphp,

php - RegEx:安全、快速地删除非字母 UTF-8

我正在尝试删除PHP中除有效字母(来自任何语言)之外的所有内容。我一直在使用这个:$content=preg_replace('/[^\pL\p{Zs}]/u','',$content);但它的速度非常慢。比以下时间长约30倍:$content=preg_replace('/[^a-z\s]/','',$content);我正在处理大量数据,因此使用慢速方法确实不可行。有没有更快的方法? 最佳答案 好吧,它只慢了30倍,这真是一个奇迹,因为在检查某个代码点是否为字母时,它需要考虑的字符比仅考虑a-z多1000倍。也就是说,您可以稍微

php - 用于检测 base64 编码字符串的 RegEx

我需要在我的应用程序中检测格式为@base64(例如@VGhpcyBpcyBhbiBlbmNvZGVkIHN0cmluZw==)的字符串。@必须在开头,base64编码字符串的字符集是a-z,A-Z,0-9,+、/和=。会是检测它们的适当正则表达式吗?谢谢 最佳答案 应该这样做(不检查适当的长度!):^@[a-zA-Z0-9+/]+={,2}$任何base64编码字符串的长度必须是4的倍数,因此是附加的。请参阅此处以获取检查长度是否正确的解决方案:RegExtoparseorvalidateBase64data链接答案中对正则表达式

REGEX-除字符串以外的所有内容

我想替换每个不是给定炭的字符串的炭|或者;管他呢。我有简单的RegexPatern:([a-zA-Z])\w+...问题是要替换除了该模式的匹配之外的所有内容。例子:qwerty123456;,.'[]?/asd结果:qwerty|||||||||||||||||asd提前致谢。看答案您可以通过两种方式过滤/匹配/替换第一个变体:[a-z0-9]//filter/match/replaceeverythingthatisincludedinthedefinedCharacterset第二个变体:[^a-z0-9]//filter/match/replaceeverythingthatisNOT

android - 如何在 android list 中使用 <support-screens> 和 <compatible-screens>?

我需要在Playstore上发布一个Android应用程序。我的应用程序仅适用于平板电脑。当前支持平板电脑的list条目是:但使用此配置,我的应用程序在较旧的Nexus-7平板电脑上不可见。所以现在我也添加了兼容屏幕标签。是否只有这些更改才能让我的应用在Nexus7的GooglePlay商店中可见?我的另一个担心是在list文件中同时使用支持屏幕和兼容屏幕是否可以。链接differencebetweenandonAndroid解释得很好。但是没有提到这两个标签是否可以一起使用。编辑:该应用程序使用的权限是:谢谢。 最佳答案 “但是没

(?= [a-z])REGEX如何使用Split()函数?

我试过了varstr="thisIsATest";varnewStr=str.split(/(?=[A-Z])/);console.log(newStr);结果是我想要的:['this','Is','A','Test']但是?=isx(?=y)仅当x随后是y时匹配x。因此,每个单词的最后一个字母不应该分裂。['thi','I','','Test']像这样...是否。因为如果我这样做split('');它将在每个“空间”中分裂看答案当您尝试拆分时,不要想象它看着每个角色。相反,尝试想象它的作用像光标,从:|thisIsATest至:thisIsATest|它之所以像光标一样工作的原因是因为您告诉