Android如何使用正则表达式只保留字母数字

Viridis ·
更新时间:2024-09-20
· 644 次阅读

目录

前言

#1. 匹配字母(大写/小写)和数字的字符

#2. 使用正则表达式,将给定的字符串进行处理,只保留字母和数字:

#3. 添加单元测试:

附:android 利用正则表达式 控制edittext只能输入数字、英文、汉字

总结

前言

正则表达式是对字符串操作的一种逻辑公式,就是用事先定义好的一些特定字符、及这些特定字符的组合,组成一个“规则字符串”,这个“规则字符串”用来表达对字符串的一种过滤逻辑。

#1. 匹配字母(大写/小写)和数字的字符

正则表达式:[^a-zA-Z0-9]

#2. 使用正则表达式,将给定的字符串进行处理,只保留字母和数字:

我们需要将非字母和数字进行替换空替换,即需要匹配非字母和数字,

正则表达式为: [^a-zA-Z0-9]

/** * 删除特殊字符并仅显示字母数字字符: * 没有破折号,没有散列,没有崩溃或斜线,没有空格,等等 * * @return 字符串只有字母数字字符 */ fun String.formatToAlphanumeric(): String = this.replace("[^a-zA-Z0-9]*".toRegex(), "") #3. 添加单元测试: @Test fun formatToAlphanumericTest() { val expectedString = "33K212A" val stringWithDash = "33K-21-2A" val stringWithSpace = "33-K21 2A " assertEquals(expectedString, stringWithDash.formatToAlphanumeric()) assertEquals(expectedString, stringWithSpace.formatToAlphanumeric()) } 附:android 利用正则表达式 控制edittext只能输入数字、英文、汉字

通过正则表达式来判断。下面的例子只允许显示字母、数字和汉字。

public static String stringFilter(String str)throws PatternSyntaxException{            // 只允许字母、数字和汉字             String   regEx  =  "[^a-zA-Z0-9\u4E00-\u9FA5]";                            Pattern   p   =   Pattern.compile(regEx);            Matcher   m   =   p.matcher(str);            return   m.replaceAll("").trim();        } //点击事件调用上述方法 tv_other.setOnClickListener(new OnClickListener() {    @Override    public void onClick(View v) {     // TODO Auto-generated method stub     nicheng = ed_xiugainicheng.getText().toString();         String str = stringFilter(nicheng.toString());             if(!nicheng.equals(str)){            Toast.makeText(WoXiuGaiNiChengActivity.this, "不能输入非法字符!" , Toast.LENGTH_SHORT).show();     } } 总结

到此这篇关于Android如何使用正则表达式只保留字母数字的文章就介绍到这了,更多相关Android正则保留字母数字内容请搜索软件开发网以前的文章或继续浏览下面的相关文章希望大家以后多多支持软件开发网!



Android 正则表达式 字母 正则

需要 登录 后方可回复, 如果你还没有账号请 注册新账号