正则表达式:如何处理字符/

时间:2018-04-24 11:54:05

标签: regex linux debian grafana zabbix

我正在使用grafana来获取zabbix代理数据。

我只需要匹配以下其中一个值:

  

C上的可用空间:(百分比)

     

/(百分比)上的可用空间

此表达式不匹配第二个:

/^(Free space on C: (Percentage)|Free Space on \/ (Percentage))$/

即使在线正则表达式文本也不匹配。

我很确定问题出在角色/.

3 个答案:

答案 0 :(得分:0)

如果你用这样的正斜杠逃脱正斜线怎么样?

/^(Free space on C: (Percentage)|Free Space on // (Percentage))$/

Demo

答案 1 :(得分:0)

试试这个:

public function get_posts($slug = FALSE, $limit = FALSE, $offset = FALSE){
    if($limit){
        $this->db->limit($limit, $offset);
    }
    $user_id = $this->session->userdata['user_id'];
    $user_type = $this->session->userdata['userType'];  // Assuming that you would be storing user role in session with 'userType' key
    if($slug === FALSE){
        $this->db->select('*');
        $this->db->from('posts');

        $this->db->order_by('posts.id', 'DESC');
        $this->db->join('users', 'users.id= posts.user_id');
        if($user_type != 'admin'){  // Then fetch all post of logged in user. Otherwise all post of all the users will be fetched.
            $this->db->where('users.id',$user_id);
        }
        $query = $this->db->get();
        return $query->result_array();
    }

        $query = $this->db->get_where('posts', array('slug' => $slug));
        return $query->row_array();
}

Demo

答案 2 :(得分:0)

要匹配您的一个值,您必须绕\

转义(Percentage)括号

^(Free space on C: \(Percentage\)|Free Space on \/ \(Percentage\))$

如果您只想匹配您的值,可以使用非捕获组^(?: