草庐IT

php - 拆分名称和 ID

我有一个字符串"JonSmith02-11-1955"我用preg_split得到JonSmith(reg='[0-9-]')然后再做一次('[a-zA-Z]\')得到他的生日。有没有更好的方法可以将它们合二为一? 最佳答案 /(?在这种情况下有效。它匹配前面有字母后面有数字的位置。了解lookbehindsand-aheads获取更多信息。如果名称可以包含数字,这将不起作用。DEMO 关于php-拆分名称和ID,我们在StackOverflow上找到一个类似的问题:

php - 从电话号码输入字段中提取号码 (PHP)

我有一个电话号码输入字段,它允许用户以他们想要的任何格式(555-555-5555、(555)555-5555等)添加电话号码。因为它只是一个电话号码字段,所以我可以忽略除该字段中的数字以外的所有内容。我目前正在使用以下代码。它提取了所有数字,但问题是它们没有按顺序排列-顺序困惑。如何按照数字在原始字符串中出现的顺序提取数字?preg_match_all('/\d+/',$Phone,$matches);$Phone=implode('',$matches[0]);编辑:它们实际上并不是来自该函数的困惑顺序-我将数字插入到int(10)数据库字段中,这导致了困惑。但是,下面的答案仍然是

PHP preg_replace 在最后一个下划线之后出现任何文本

我可以使用explode来做到这一点(或者使用strrpos玩得开心),但我更喜欢使用preg_replace因为应该有点更快,我认为(不是吗?)。此外,它简洁优雅。目的是,给定一个类似a_b_c的字符串来获取另一个字符串,其中字符跟在最后一个_之后,其中替换为传递的字符串。我不擅长正则表达式。我必须在学习中抽出时间买一本好书。不管怎样,我试过这个正则表达式'/_(.*)$/'作为匹配字符串的结尾,捕获最后一个下划线后面的任何字符。我的论证有什么问题?//Doitusingexplodefunctionfoo($string,$replacement){$pieces=explode(

php - 正则表达式将 <img> 相对 URL 更改为绝对

我需要查看一串HTML并更改所有src所在的标签属性是相对地址,相对于绝对URL。所以这个:需要成为:同时忽略src的标签属性已经是绝对的。我正在使用PHP并假设我需要通过preg_replace()运行它.帮助!谢谢! 最佳答案 这不是正则表达式的工作。这是XML/DOM解析器的工作。我会试一试DOMDocument。$DOM=newDOMDocument;$DOM->loadHTML($html);$imgs=$DOM->getElementsByTagName('img');foreach($imgsas$img){$src=

php - 我如何将 preg_match 与字母数字和 unicode 接受一起使用?

我要用PHP建立一个多语言网站,需要有一个preg_match来传递所有Unicode字符和数字。即我需要它来传递英文字母、西类牙文字母、意大利文字母,正如您可能知道的那样,我不想传递其他字符,例如'"_-和...我想要这样的东西:$pattern='/^[unicodecharswithout\'-_;?]*$/u';if(!preg_match($pattern,$url))echo#error; 最佳答案 字母的Unicode属性是\pL所以在preg_match中:preg_match('/^\pL+$/u',$string

php - 我应该如何分隔一串正则表达式?

我想在mysql数据库的文本字段中存储一些正则表达式。目前我最好的想法是使用不规则的符号模式作为我的分隔符。示例:$delim='!@#$%';$regex1='/^(.+)$/';$regex2='/.(.+)./';$regex3='/(\s+):\/\//';$string=$regex1.$delim.$regex2.$delim.$regex3;$string将存储在数据库中。要检索我会使用类似的东西:$array=explode($delim,$string);我想知道是否有比仅仅希望我的定界符不出现在其中一个正则表达式中更好、更准确的方法。 最

php - 从 YouTube URL 参数中提取分钟和秒(例如 '02m12s')

从youtubeurl中提取分钟和秒的最佳方法?http://www.youtube.com/watch?v=TjTbNWhsG28#t=1m40s&foo=1&bar=2其中1m40s是我需要的字符串,可以使用“#t=”或“&t=”。也可能在最后(或在中间但不太可能。我会排除那个)http://www.youtube.com/watch?v=TjTbNWhsG28?foo=1&bar=2#t=1m40s'xmxs'中的'x'可以是一位数或两位数,可能只传递其中一位数“#t=10m3s”或“&t=09m12s”它们都是可选的“#t=10m”或"&t=3s"或"#t=10m03"sYou

php - preg_match 允许反斜杠的问题

我遇到了一个关于preg_match()和反斜杠的奇怪问题。我正在尝试检查非法字符的用户名。它适用于几乎所有东西,但显然像“BobDobbs”这样的用户名正在通过。我已经设法使用strpos()轻松地解决了这个问题,但我仍然不确定我的语法有什么问题。运行PHP5.3.10。$displayname='BobDobbs\\\\';if(preg_match("/[^A-z0-9_.-]/",$displayname)){$errors[]='Namecontainsillegalcharacters';} 最佳答案 范围A-z包含\字

PHP 正则表达式字符串,以特定字符开头,后跟数字

我正在尝试创建一个正则表达式来验证代码。规则如下:以B或J或28开头字符串的总长度必须为7或13个字符(包括起始字符)起始字符后面的字符必须全是数字谁能帮我解决这个问题?谢谢我试过类似的东西$pattern="/^((J|B|28)([0-9])({7}|{13})?/i";但它似乎不起作用:\ 最佳答案 $pattern="/^(?=(.{7}|.{13})$)(B|J|28)\d+$/"; 关于PHP正则表达式字符串,以特定字符开头,后跟数字,我们在StackOverflow上找到一

php - 正则表达式 - preg_match 拉丁和希腊字符

这个问题在这里已经有了答案:MatchingUTFCharacterswithpreg_matchinPHP:(*UTF8)WorksonWindowsbutnotLinux(3个答案)关闭9年前。我正在尝试为任何给定的字符串创建一个正则表达式。目标:删除所有不是“latin”或“lowercasegreek”或“numbers”的字符".到目前为止我做了什么:[^a-z0-9]这非常适合拉丁字符。当我尝试这个时:[^a-z0-9α-ω]运气不好。有效但遗漏了任何其他符号,如!!#$%@%#$@,`我对正则表达式的了解有限。任何帮助将非常感激!编辑:下面发布的是匹配指定字符并从中创建一