字符串的正则表达式包含模式

时间:2015-07-29 11:26:03

标签: regex

我正在尝试为字符串

创建以下模式的正则表达式
String may contain alphanumeric characters
String may contain the following special characters like Space ( ) - :/

如果字符串包含除此之外的任何内容,我的正则表达式应该返回false

我尝试使用以下正则表达式[0-9a-zA-Z\s():-]+,但它没有成功。匹配返回true,即使它包含,; 等字符

我能够实现黑名单,但我试图实现哪些字符是允许的,如果有任何其他发现返回错误

一个擅长编写正则表达式的人可以帮助我。

由于

1 个答案:

答案 0 :(得分:2)

确保使用开始/结束锚点以避免匹配不需要的输入数据:

  public class ProductAdapter extends
            RecyclerView.Adapter<ProductAdapter.ProductViewHolder> {
     Context ctx;
     ArrayList<ProductDetail> productList;

     public ProductAdapter(Context ctx, ArrayList<ProductDetail> productList) {
        this.ctx = ctx;
        this.productList = productList;
     }

     @Override
     public int getItemCount() {
        return productList.size();
     }

     @Override
     public void onBindViewHolder(final ProductViewHolder vHolder, int pos) {

        vHolder.txt_prod_name.setText(productList.get(pos).getProduct_desc());

        vHolder.btn_add.setOnClickListener(new OnClickListener() {
            @Override
            public void onClick(View v) {
                vHolder.lyt_prod_qty.setVisibility(View.VISIBLE);
                vHolder.btn_add.setVisibility(View.GONE);
            }
        });
     }

     @Override
     public ProductViewHolder onCreateViewHolder(ViewGroup parent, int arg1) {

        View view = LayoutInflater.from(parent.getContext()).inflate(
                R.layout.activity_recycler_search_item, null);
        ProductViewHolder viewHolder = new ProductViewHolder(view);
        return viewHolder;

     }
     public class ProductViewHolder extends RecyclerView.ViewHolder {
        TextView txt_prod_name;
        TextView txt_delivery_type;
        TextView txt_prod_mrp;
        Spinner spn_prod_qty;
        LinearLayout list_lyt, lyt_prod_qty;
        Button btn_add;

        public ProductViewHolder(View itemView) {
            super(itemView);
            txt_prod_name = (TextView) itemView
                    .findViewById(R.id.txt_prod_name);
            txt_delivery_type = (TextView) itemView
                    .findViewById(R.id.txt_delivery_type);
            txt_prod_mrp = (TextView) itemView.findViewById(R.id.txt_prod_mrp);
            btn_add = (Button) itemView.findViewById(R.id.btn_add);
        lyt_prod_qty = (LinearLayout) itemView
                .findViewById(R.id.lyt_prod_qty);
            }
        }
     }