正则表达式练习

/*
需求:将下列字符串改成:我要学编程


思路方式:
1,如果只想知道该字符是否对是错,使用匹配
2,想要将已有的字符串变成另外一个字符串,替换
3,想要按照自定的方式将字符串变成多个字符串,切割,获取规则以外子串
4,想要拿到符合需求的字符串子串,获取,获取符合规则的子串
*/
import java.util.*;
class RegexTest
{
public static void main(String[] args) 
{
//test_1();
//ipSort();


checkMail();
}


/*
需求:对邮件地址进行校验。
*/
public static void checkMail()
{
String mail = "abc12@sina.com.cn";


mail = "1@1.1";

//出现.com.cn可以封装组重用
String reg = "[a-zA-Z0-9_]+@[a-zA-Z0-9]+(\\.[a-zA-Z]+)+";
//另一种非精确匹配  /w 单词字符:[a-zA-Z_0-9]
reg = "\\w+@\\w+(\\.\\w+)+";


//mail.indexOf("@")!=-1;  这匹配有@就行!


System.out.println(mail.matches(reg));
}


public static void test_1()
{
String str ="我我..我我..我我..要要..要要..要要..学.编程编程";

/*
将已有的字符串变成另一个字符串,使用 替换功能
1,可以先将 . 去掉。
2,再将多个重复的内容变成单个内容。
*/
str = str.replaceAll("\\.+","");
System.out.println(str);


//去叠词
str = str.replaceAll("(.)\\1+","$1");
System.out.println(str);
}
/*
192.68.1.254 102.49.23.013 10.10.10.10 2.2.2.2 8.109.90.30
将ip地址进行地址段顺序的排序。
*/
public static void ipSort()
{
String ip = "192.68.1.254 102.49.23.013 10.10.10.10 2.2.2.2 8.109.90.30";


ip = ip.replaceAll("(\\d+)","00$1");
System.out.println(ip);


ip = ip.replaceAll("0*(\\d{3})","$1");
System.out.println(ip);


//切割
String[] arr = ip.split(" ");


TreeSet<String> ts = new TreeSet<String>();
//遍历数组,存进集合
for(String s : arr)
{
ts.add(s);
}
// 遍历集合
for(String s : ts)
{
//替换成不带0的
System.out.println(s.replaceAll("0*(\\d+)","$1"));
}


}
}
### Linux 正则表达式练习资源和教程 Linux 正则表达式是一种强大的文本处理工具,能够帮助用户高效地匹配、查找和替换字符串。以下是一些关于 Linux 正则表达式练习资源和教程: #### 1. 在线练习平台 许多在线平台提供了专门的正则表达式练习环境,用户可以实时测试自己的正则表达式模式。例如: - **Regex101**:这是一个非常流行的在线正则表达式测试工具,支持多种编程语言(如 Python、PHP 和 JavaScript)[^5]。 - **RegExr**:提供了一个交互式的学习界面,用户可以在其中编写正则表达式并立即查看结果。 #### 2. 命令行工具练习 在 Linux 系统中,可以使用以下命令行工具来练习正则表达式: - **grep**:用于搜索包含特定模式的文件行。例如,`grep -E "^(H|h)" /etc/passwd` 可以匹配以大写或小写 H 开头的行[^2]。 - **sed**:用于流编辑器操作,可以执行复杂的文本替换任务。 - **awk**:一种强大的文本处理工具,支持正则表达式匹配和数据提取。 #### 3. 练习题示例 以下是几个常见的 Linux 正则表达式练习题: - **匹配非字母开头的文件名**:可以使用 `ls -a /etc/ | grep -v ^[[:alpha:]] | grep [[:alpha:]]` 来查找以非字母开头且后面跟有字母的文件或目录[^1]。 - **提取数字序列**:给定一个包含混合字符的文件,使用正则表达式提取所有数字。例如,`grep -o '[0-9]\+' file.txt`[^3]。 - **日志文件分析**:从系统日志中提取特定信息。例如,`grep 'Authentication Agent' /var/log/syslog` 可以查找与身份验证代理相关的日志条目[^4]。 #### 4. 推荐教程 以下是一些推荐的 Linux 正则表达式教程资源: - **《Linux Shell Scripting Cookbook》**:这本书包含了大量关于正则表达式的实际应用案例。 - **官方文档**:Linux 的 `man` 页面提供了详细的命令说明,例如 `man grep` 和 `man sed`。 - **在线课程**:像 Coursera 和 Udemy 这样的平台上也有许多专注于 Linux 和正则表达式的课程。 ```bash # 示例:使用 grep 查找包含数字的行 grep -E '[0-9]+' example.txt ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值