java regex (一)

以前看了几次regex,可是用得比较少,所以忘记得比较快。
这次记一下:
可以参考此链接:http://baike.baidu.com/link?url=pAGNQKW-AxL925zqGA8KVsPgzn2S8GBy3pFR9igJesyqQaObsXJabivP_fuWyBVCSF5cLIKycp6QEZ0ITnlpDK

正则表达式:使用一个表达式匹配一个连续的字符串。
意思就是可以使用正则表达式匹配一定格式的字符串。而写好这个表达式就是学正则表达式的目标。
例1:
就匹配单个字符而言,比如字符串:apple
如果要匹配”l”这个字符,那正则表达式就是一个l就行
如果要匹配”pl”这个字符串,那正则表达式就是pl

例2:
就匹配一个字符,但是这个字符可以是一定范围的,或自己给定的一个集合中的一个,比如字符串:@@@u@@@
如果只要匹配中那个u(可以是数字,字母),那正则表达式可以是[u]。
也可以是[uadf](注意,这个不是匹配”uadf”这个字符串,而是他会在某个字符串内查找有没有符合”u”,”a”,”d”,”f”这个集合中的其中一个字符。),因为这个集合内有u所以可以成功的找出”@@@u@@@”这个字符串中的”u”。
也可以用[a-zA-Z0-9],这个表达式说明了集合内有小写字母a到z和大写字母A到Z和数字0到9。因为这个集合内包含u所以还是可以到”@@@u@@@”里面的”u”。
这里要记住[]总是表示一个集合,不能用他来表示一个字符串,比如字符串:”apple”,你只能用正则表达式apple来表示这整个字符串,而用[apple]只能用来查找字符串”apple”中是否有符合集合”a”, “p”, “l”, “e”中的其中一个字符。

例3:
元字符\d的意思是匹配一个数字,他也可以用集合的方式给出[0-9],两个是等价的,都是查找一个数字。

例4:
有两种方法可以消除元字符本身的意思而代表他字符本身。
第一种:
\*,这表示查找”*”这个字符
第二种:
[!?.],这表示查找匹配标点符号(!或?或.)

### Java 正则表达式 `regex` 使用教程 #### 基本概念 正则表达式是种描述字符串模式的语法,由系列字符和特殊字符组成,用于匹配、搜索和替换文本。在Java中,可以通过`java.util.regex`包下的类来操作正则表达式[^1]。 #### 特殊字符处理 当需要表示这些特殊字符本身时,在Java中的正则表达式的正常方式是在前面加上个`\`字符[^2]。例如,`.`是个特殊字符,用来匹配除换行符外的任意单个字符;如果希望匹配实际的点号,则应写成`\.`。 #### 编译与匹配过程 为了提高效率并重复利用同个正则表达式,通常会先创建个`Pattern`对象作为该表达式的编译版本。下面的例子展示了如何定义、编译以及查找符合特定模式(即连续数字序列)的所有子串: ```java public class Regex { public static void main(String[] args) { // 定义正则表达式 String regex = "\\d+"; // 匹配个或者多个数字 // 编译正则表达式 Pattern pattern = Pattern.compile(regex); // 创建匹配器 Matcher matcher = pattern.matcher("There are 123 numbers in this 45 string 789."); // 查找匹配的子字符串 while (matcher.find()){ System.out.println(matcher.group()); } } } ``` 这段代码将会输出所有的整数部分:“123”,“45”,“789”。 #### 字符串分割示例 除了简单的匹配之外,还可以通过正则表达式来进行更复杂的操作,比如按照空白符拆分字符串: ```java import java.util.regex.*; public class RegexExample { public static void main(String[] args) { String pattern = "\\s+"; String text = "Split this string by spaces."; Pattern compiledPattern = Pattern.compile(pattern); String[] parts = compiledPattern.split(text); for (String part : parts) { System.out.println(part); } } } ``` 此程序将把输入字符串按空格分开,并打印每部分。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值