- 正则表达式中分为三种东西:字符 数字 空格
- 正则表达式:(java.util.regex中)处理字符串,字符的匹配
- perl语言是运用正则表达式很好的语言
- 留下e-mile从网页中揪出来e-mile挨个发邮件(垃圾邮件,哈哈)
-
一个点代表一个字符
\\d代表数字,两个反斜杠代表一个反斜杠。
ReplaceAll()替换所有数字为横线
Pattern.Compile()是对文字进行编译“ [a-z]{3} ” 返回一个Pattern模式。在a到z之间三个字符。(实现提前编译,运行速度快)
p.matcher( “fgh”); 与“fgh”进行匹配,返回Matcher类型
m.machers( )返回boolean类型,反应是否为匹配
p(“fgh”.matchers(“[a-z] {3}”));相当于三句话。但不如用以上三句好。这句的编译是在运行的使用编译的(速度慢)。而且Pattern Matcher 有很多有用方法
选中内容ctrl + shift + / 注释
范围:一个中括号中匹配一个字符。[^abc]是除了abc 三到五是一样的效果“并集” 最后一个在A到Z之间并且是RFG之中的
S{4} 匹配四个空格 [&^#%]+ 四个字符之一一到多个
匹配一个\要用四个\
POSIX是linux 的一套标准用的不多(自己不要用)
^h.*以h开头的字符 $字符的结尾 \b单词的边界(和空格有什么区别吗?注意空格不是任意字符)
^[\\s&&[^\\n] ]* \\n$ 以空格和非换行为开头以换行为结尾
匹配e-mail地址
(单词或(点或横线))一个或多个@(单词或(点或横线))一个或多个. (单词一个或多个)
要匹配小数点本身要用\\. 单独.表示任意字符
正则表达式中不允许有空格
Quantifiers(修饰符)
m.find( )每找到一个符合(找字串)就吃掉并返回true,找不到翻译false
m.matches( ) 当吃到横线时就不匹配了,返回false,但吃下的不会吐出来,若再后面直接m.find( )就从刚才吃掉剩下的开始。为了让m.matches( )吃下的吐出来就用m.reset( ).
m.lookingAt( )每次都从头开始“123”符合返回true
start() end() 输出找到的字符串的开始位置和结束位置。(首先要find() 到才可以)。End() 找到字符串的下一个位置
替换字符串:
Pattern.CASE_INSENSITIVE 忽略大小写
replaceAll( “JAVA”)将所有大小写的java替换为大写的
奇大写偶小写:
AppendReplacement() 第一参数为StringBuffer,是将替换后的字符串放在里面
AppendTail( )将尾部添加到StringBuffer中
分组:
Group( )找到符合条件的字符串分开。
Compile()里用小括号将分组,(左边第一个小括号就是第一组,第二个就是第二组)
Group( 1)只找第一组的内容(只找数字)。Group( )找所有的