美文网首页
习得屠龙术---正则表达式

习得屠龙术---正则表达式

作者: 晚安多巴胺 | 来源:发表于2017-10-30 22:18 被阅读0次

一般长这样

^[0-9]+abc$

使用:

var str = "123abc";
var patt1 = /^[0-9]+abc$/;
document.write(str.match(patt1));

^ 为匹配输入字符串的开始位置。
$ 为匹配输入字符串的结束位置。

一个字符串其实就是一个简单的正则表达式,例如 Hello World 正则表达式匹配 "Hello World" 字符串。

实例

a\s+
a后面可以匹配多个空格
\d+
匹配>=1个数字
()?
设置括号内的选项是可选的
\.
匹配“.”
^\d+(.\d+)?
可以匹配的实例:"5", "1.5" 和 "2.21"
.*
任何东西
*
>=0个
+
>=1个
?
0或者1个
注意
当?紧随(*、+、?、{n}、{n,}、{n,m})之后时
匹配模式是"非贪心的"(尽可能短的字符串)
"贪心的"模式(尽可能长的字符串)
例如,在字符串"oooo"中,"o+?"只匹配单个"o",而"o+"匹配所有"o"。
{n}
n 是非负整数。=n个
{n,}
n 是非负整数。n<= 个
{n,m}
M 和 n 是非负整数,其中 n <= m。n<=个数<=m
注意:不能将空格插入逗号和数字之间。
x|y
匹配x或者y
[xyz]
匹配包含的任一字符
例如,"[abc]"匹配"plain"中的"a"。
[^xyz]
匹配未包含的任何字符
例如,"[^abc]"匹配"plain"中"p","l","i","n"。
[a-z]
匹配a-z之间的内的任何字符
[^a-z]
匹配不在a-z的任何字符
\b
匹配一个字边界,即字与空格间的位置
例如,"er\b"匹配"never"中的"er",但不匹配"verb"中的"er"
\B
非字边界匹配
"er\B"匹配"verb"中的"er",但不匹配"never"中的"er"
\d
[0-9]
\D
不是[0-9]
\w
匹配任何字类字符,包括下划线。与"[A-Za-z0-9_]"等效
\W
上面取反

捕获组

public class RegexMatches
{
    public static void main( String args[] ){
 
      // 按指定模式在字符串查找
      String line = "This order was placed for QT3000! OK?";
      String pattern = "(\\D*)(\\d+)(.*)";
 
      // 创建 Pattern 对象
      Pattern r = Pattern.compile(pattern);
 
      // 现在创建 matcher 对象
      Matcher m = r.matcher(line);
      if (m.find( )) {
         System.out.println("Found value: " + m.group(0) );//整个表达式
         System.out.println("Found value: " + m.group(1) );
         System.out.println("Found value: " + m.group(2) );
         System.out.println("Found value: " + m.group(3) ); 
      } else {
         System.out.println("NO MATCH");
      }
   }
}

得到的结果

Found value: This order was placed for QT3000! OK?
Found value: This order was placed for QT
Found value: 3000
Found value: ! OK?

特殊

在 Java 中,\ 表示:我要插入一个正则表达式的反斜线,所以其后的字符具有特殊的意义。
在 Java 中,\ 表示:我要插入一个正则表达式的反斜线,所以其后的字符具有特殊的意义。
在正则表达式中,两个 \ 代表其他语言中的一个 \,
一位数字的正则表达式是 \d,一个普通的反斜杠是 \\。

相关文章

  • 习得屠龙术---正则表达式

    一般长这样 ^[0-9]+abc$ 使用: ^ 为匹配输入字符串的开始位置。$ 为匹配输入字符串的结束位置。 一个...

  • 西斋·屠龙术(短篇版)

    屠龙有术/ 只是屠龙的术无法杀人/ 厌倦了杀人术的人/ 最后又练起了屠龙术 是什么样的龙/ 曾居住在大地上/ 被屠...

  • 在路上&湖北征文|国庆来湖北,看一次高颜值的“乾坤大挪移”!

    “乾坤大挪移”本是金庸小说《倚天屠龙记》里张无忌习得的一种最厉害的武功,习得者可发出巨大能量颠倒一刚一柔、一阴一阳...

  • 屠龙术

    从前有个古代的人,就是唐宋元明清那种古代,名叫张三。那年头流行学徒制,跟着师傅混饭吃,隔壁李四学的剃头,邻村王五学...

  • 屠龙术

    整整两天时间,阳鸣才将“屠龙宝术”从头到尾看了一遍。他大致明白了里面的一些内容,多数是教他如何养生,炼体,...

  • 屠龙术

    古时候,有一个老师,收了两个徒弟。他非常喜欢其中一个,但又很讨厌另一个。于是他教讨厌的徒弟屠龙,教喜欢的徒弟杀猪。...

  • 屠龙术

    曾向茅山寻道法 十年寒暑始归之 一身空有屠龙术 未遇螭蛟用武时 李学生临屏手书 《屠龙术》 古有人,往山中求道,成...

  • 屠龙术

    看到一则新闻:上海的小学取消了英语考试…… 我对朋友说:这是不是意味着英语将会退出学科教育,变成选修课程,这样挺好...

  • 屠龙术

    我是有钱人。 我曾经腰缠万贯,因此得了腰肌劳损。医生跟我说:“现在都啥年代了,用支付宝吧!”于是,我把那一万贯钱取...

  • 温故而知新----精益生产

    都说精益难推,有一个原因是因为只习得术,而没有习得道。那么,什么是术?什么是道呢?举个软件测试的例子: 1 自动化...

网友评论

      本文标题:习得屠龙术---正则表达式

      本文链接:https://www.haomeiwen.com/subject/lqimpxtx.html