模式p = Pattern.compile(“(?<! - \\ w)[tT] \\ w +”); - >

时间:2014-10-10 05:51:05

标签: java regex

请任何人帮我打破这段代码并向我解释

此代码如标题

所示

我知道它的输出,但我想知道它是如何工作的

REGEX:(?<!\\w)[tT]\\w+”)

2 个答案:

答案 0 :(得分:2)

正则表达式的部分是:

  • (?<!\\w) =&#34;前面的字符不是&#34;字&#34;炭
  • [tT] =&#34; t&#34;或&#34; T&#34;
  • \\w+ =&#34;一个或多个&#34;字&#34;字符

总而言之,它意味着&#34;一个以T开头且至少有两个字符长的字#34;

顺便说一句,这可以更简洁地表达为:

\b[tT]\\w+

\b含义&#34;字边界&#34;

答案 1 :(得分:0)

(?<!\\w)[tT]\\w+

(?<!\\w) ==&gt;负面的背后隐藏(tT后面不应该有[a-zA-Z0-9_]。

[tT] ======&gt; tT

\\w+ ======&gt;任何[a-zA-Z0-9 _] +。(应该是一个或多个)

基本上它捕获像

这样的单词

trainTrain@traintraintot121ka等。

它不会捕获

atrain