【问题标题】:Notations in Regular Expressions正则表达式中的符号
【发布时间】:2012-08-25 01:16:54
【问题描述】:

我正在尝试学习正则表达式。我看过几个教程,但我没有找到它们 清晰或全面。我的问题是何时使用 ^$ 以及何时使用 "\b"。用过的?我知道他们是什么 意思是但只是确定如何。

一些例子:

1. \((\d+)\)\.\((\d+)\)\.\((\d+)\)
2. \b1?264[)- ]*\d{3}[- ]*\d{4}\b
3. ^[a-g]{4}$

不是所有的正则表达式都必须以“^”开头并以“$”结尾吗?

【问题讨论】:

标签: regex notation


【解决方案1】:

在查看它们何时使用之前,首先您需要了解它们的含义:

  • ^anchor 行的开头。
  • $ 是行锚的行尾。
  • \b 匹配 word boundary。换句话说,它匹配单词字符 \w 和非单词字符 \W 或字符串的开头或结尾。

例如:

  • 若要检查字符串 是否以数字开头,请使用^\d
  • 要检查字符串是否以数字结尾,请使用\d$
  • 要检查字符串是否包含单词foo,请使用\bfoo\b。省略单词边界会导致它匹配包含foo 的单词,例如seafood

【讨论】:

  • 你是什么意思“\b”匹配一个单词字符\w和一个非单词字符\W?
  • @GTyler:我有另一个答案,我会更详细地解释 \b 和 \B:stackoverflow.com/questions/4541573/… 这有帮助吗?
  • @Mark Byers:更正确的说法是\b 匹配单词字符\w 而不是单词字符,因为它可以匹配字符串的开头或结尾,如果第一个/最后一个字符是单词字符。
猜你喜欢
  • 2015-05-31
  • 2013-06-01
  • 2021-12-04
  • 2012-03-19
  • 1970-01-01
  • 2014-03-27
  • 2012-01-11
  • 2012-07-27
相关资源
最近更新 更多