java正则表达式

Python020

java正则表达式,第1张

Java 正则表达式和 Perl 的是最为相似的,正则表达式就是规则表达式。

Java中正则表达式与之前使用的Python是有区别的,区别在于Java对于反斜线(\)处理的不同。 在Python中”\d”表示 匹配一位数字(0-9),而Java中匹配一位数字(0-9),需要的正则表达式为”\\d”。 不过换行符和制表符只需要单反斜线“\n\t”。

正则表达式定义了字符串的模式。可以用来搜索、编辑或处理文本。不仅限于某一种语言,但是在每种语言中有细微的差别。

java正则表达式是计算机科学的一个概念。正则表达式使用单个字符串来描述、匹配一系列符合某个句法规则的字符串。

在编写处理字符串的程序或网页时,经常会有查找符合某些复杂规则的字符串的需要。正则表达式就是用于描述这些规则的工具。换句话说,正则表达式就是记录文本规则的代码。

很可能你使用过Windows/Dos下用于文件查找的通配符(wildcard),也就是*和?。如果你想查找某个目录下的所有的Word文档的话,你会搜索*.doc。在这里,*会被解释成任意的字符串。

和通配符类似,正则表达式也是用来进行文本匹配的工具,只不过比起通配符,它能更精确地描述你的需求——当然,代价就是更复杂——比如你可以编写一个正则表达式,用来查找所有以0开头,后面跟着2-3个数字,然后是一个连字号“-”,最后是7或8位数字的字符串(像010-12345678或0376-7654321)。

正则表达式的基本操作:

正则表达式定义:符合一定规则的表达式。

作用:用于专门操作字符串。

特点:用于一些特定的符号来表示一些代码操作。这样就简化书写。所以学习正则表达式,就是在学习一些特殊符号的使用。

好处:可以简化对字符串的复杂操作。

弊端:符号定义越多,正则越长,阅读性越差。

JAVA中正则表达式处理字符串的四个常用方法:匹配、分割、替换、截取。其跟字符串的常用函数相似,但是使用正则表达式会更简单、更加简洁。下面是具体的例子:

1 public class TestRegex {

2

3 public static void main(String[] args) {

4 String str = ""

5 String regex = ""

6

7 // 匹配

8 regex = "[1-9][a-z]"

9 getMatches(str, regex)

10

11 // 分割

12 str = "1a:abc123:"

13 regex = ":"

14 getSpilt(str, regex)

15

16 // 替换

17 str = "1223334444aaabbc"

18 String oldChar = "(.)\\1+"

19 regex = "$1"

20 getReplace(str, oldChar, regex)

21

22 // 截取

23 str = "urlabc123"

24 regex = "(.*)"

25 getSubstring(str, regex)

26

27 }

28

29 public static void getMatches(String str, String regex) {

30 System.out.println(str.matches(regex))

31 }

32

33 public static void getSpilt(String str, String regex) {

34 String[] array = str.split(regex)

35 for (String t : array) {

36 System.out.println(t)

37 }

38 }

39

40 public static void getReplace(String str, String oldChar, String regex)

{

41 System.out.println(str.replaceAll(oldChar, regex))

42 }

43

44 public static void getSubstring(String str, String regex) {

45 Pattern p = Pattern.compile(regex)

46 Matcher m = p.matcher(str)

47 if (m.find()) {

48 System.out.println(m.group(1))

49 }

50 }

51 }