正则表达式(\ W | $)和(\ W | ^)的含义

时间:2015-05-24 10:06:32

标签: regex

reg exp中{​​{1}}和(\W|$)的含义是什么?

我知道他们单独的意思,但无法理解放在一起。

  • \ W - 是非单词字符
  • ^ -start
  • $ - end
  • | - 或

请用小例子详细说明?

2 个答案:

答案 0 :(得分:1)

小例子:让我们说你的模式是abc(\W|$)

这意味着字面匹配字符abc ..后跟字符串的非单词或结尾。

所以,这将匹配以下内容:

  • abc(abc和字符串结尾)
  • abc#(abc和非单词)

但不是以下内容:

  • abca(因为a是单词的一部分)
  • abc7abc_7_是该词的一部分)

同样适用于(\W|^) ..我们希望匹配(\W|^)abc

匹配

  • @abc#abc等。(开始是一个非单词)
  • abc(以abc开头)

不匹配:

  • xabc8abc等。(开始不是^\W

您可以Experiment here了解更多信息。

答案 1 :(得分:1)

这些序列本身并不太有用,但它们可以用于锚定其他序列到文本中的特定位置。您的第一个表达式可用于检测后缀;第二个表达式可用于检测前缀。

例如,如果你写这个

test(\W|$)

您告诉引擎您正在寻找的单词test不是另一个单词的前缀,但可能是后缀。此表达式将与testcontest匹配,但与tester不匹配。