[英]php expressions preg_match
我一直在努力解决这个问题,我无法解决,我有很多字符串
"Descripcion 1","Description 2"
并且我需要按数字过滤,所以我想也许我可以使用preg_match()
查找何时恰好有1个数字1或2等等,然后执行我的逻辑,因为数字可能会改变之前是字符串,但是数字不能,我尝试使用
preg_match(" 1{1}","Description 1")
假设一次恰好找到一个空格后跟字符串“ 1”但返回false,则返回true。
也许你们中的一些人在php中使用正则表达式有更多经验,可以为我提供帮助。
提前非常感谢您。
您可以使用strpos代替preg_match!
foreach($array as $string) {
if(strpos($string, ' 1') !== false) {
//String contains " 1"!!
}
}
这将比正则表达式快得多。 或者,如果Number必须在字符串的末尾:
foreach($array as $string) {
if(substr($string, -2) == ' 1') {
//String ends with " 1"!!
}
}
您忘记了正则表达式分隔符。 请使用preg_match('/ 1/', ...)
。
但是,如果您只想测试一个字符串是否包含在另一个字符串中,则根本不需要正则表达式! 参见Lars Ebert的答案 。
您可能会成功使用
if (preg_match('/(.*\s[1])/', $var, $array)) {
$descrip = $array[1];
} else {
$descrip = "";
}
我在描述1的3个单独的字符串值(即IsAnother 1和OneMore 1)上测试了上述正则表达式。每个表达式都被表达式确定为真,并保存到组1中。
正则表达式代码的解释是:
()匹配括号之间的正则表达式,并将匹配项捕获到反向引用编号1中。
。*匹配不是换行符的任何单个字符(介于零到尽可能多的次数)(贪婪)
\\ s匹配单个空格字符(空格,制表符,换行符)
[1]匹配字符1
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.