正则表达式的简单Demo

学习了正则表达式,感觉很简单,写几个Demo试试看。

Demo01 电话号码:

从文本中找出电话号码

hsajkhfdjashfdjksasfdlsjkdkls sfdhjkshf akjhdjsakhdlja ajhjdsaha
ffhfjhfj
sahfjkahfd 45454 654 6541212 545
afjkahfja  65da55555555555554152132
 77777777777dadd77777777777777777777
afashjkfhjak 777777777d777adsdaddd777777777777777
 asfhgjakshfjahf
 gogogogogo totot toto goto goto toto gogo
going doing eating
7521257
0312-7619735
1812133358@qq.com
sdfhjhf@fhdk
ahkjhf@dfhsjk
jianghe2017@outlook.com
010-23232325

分析:座机三到四个数字+下划线-加上7到9个数字

0\d{2,3}-{7,9}

手机号1开头+3或5或7或8+9个数字

1[3578]\d{9}

综合:(0\d{2,3}-{7,9})|(1[3578]\d{9})

电子邮箱

数字或者字母开头

\w+@

@后面是qq.com或者outlook.com或者是qq.com.cn

[a-zA-Z0-9]+(\.[a-z]{2,3}){1,2}用一个捕获组表示,毕竟.com .cn可能出现两次

综合:

[\w\-]+@[a-zA-Z0-9]+(\.[a-z]{2,3}){1,2}

补充说明:\w比[0-9a-zA-Z]多出一个下划线

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
### 回答1: 可以参考下面的代码进行java字符串按正则表达式解析:String str = "This is a demo string"; Pattern p = Pattern.compile("\\w+"); Matcher m = p.matcher(str); while (m.find()) { System.out.println(m.group()); } ### 回答2: 在Java中,可以使用正则表达式解析字符串。解析字符串的过程包括查找、提取和替换符合特定模式的文本。 首先,我们需要使用java.util.regex包中的类来处理正则表达式。主要使用的类是Pattern和Matcher。 Pattern类是正则表达式的编译表示。通过使用Pattern.compile()方法,我们可以将正则表达式编译为一个Pattern对象。Matcher类则是Pattern对象的匹配器。我们可以使用Pattern.matcher()方法来创建一个Matcher对象,然后使用Matcher的一系列方法进行匹配。 例如,假设我们想要从一个字符串中提取所有的邮箱地址。我们可以使用正则表达式来定义邮箱地址的模式。可以使用以下代码实现: String text = "我的邮箱地址是:tom@example.com, 你可以给我发邮件。"; String pattern = "\\w+@\\w+\\.\\w+"; Pattern compiledPattern = Pattern.compile(pattern); Matcher matcher = compiledPattern.matcher(text); while (matcher.find()) { String email = matcher.group(); System.out.println(email); } 运行上述代码,结果将输出:tom@example.com 在这个例子中,首先编译了一个模式为"\\w+@\\w+\\.\\w+"的正则表达式。该模式用于匹配以字母、数字或下划线开头,后面跟着@符号,再后面是一个或多个字母、数字或下划线,最后是一个点和一个或多个字母、数字或下划线的字符串。 然后,我们使用Matcher的find()方法在文本中查找该模式的匹配项。当找到匹配项时,我们可以使用Matcher的group()方法获取匹配项的字符串表示,并进行后续处理。 总结来说,Java字符串按正则表达式解析可以通过Pattern和Matcher类来实现。通过定义和编译正则表达式,然后使用Matcher的方法进行匹配和处理,我们可以提取和操作字符串中符合特定模式的文本。 ### 回答3: Java中可以使用正则表达式解析字符串,实现字符串的拆分、匹配和替换等功能。下面是一个简单的示例: import java.util.regex.Matcher; import java.util.regex.Pattern; public class RegexDemo { public static void main(String[] args) { String input = "Hello, 2021! Welcome to Java Regular Expression!"; String pattern = "[0-9]+"; // 创建 Pattern 对象 Pattern p = Pattern.compile(pattern); // 创建 Matcher 对象 Matcher m = p.matcher(input); // 查找字符串中匹配正则表达式的部分 while (m.find()) { // 打印匹配到的部分 System.out.println("匹配到的字符串为:" + m.group()); } // 替换字符串中的匹配部分 String replaced = m.replaceAll("*"); System.out.println("替换后的字符串为:" + replaced); } } 上述代码中,我们使用了正则表达式"[0-9]+",表示匹配一个或多个数字。然后我们将该正则表达式编译成Pattern对象,并利用Matcher对象对输入字符串进行匹配。 通过循环调用Matcher的find()方法,可以查找字符串中所有匹配正则表达式的部分。每次调用find()方法后,可以通过调用group()方法获取匹配到的字符串,并进行相应的处理。 代码的最后,我们还使用了Matcher的replaceAll()方法,将匹配到的部分替换为"*",并打印出替换后的字符串。 通过使用正则表达式,我们可以方便地对字符串进行拆分、匹配和替换等操作,实现更复杂的字符串处理功能。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值