2013-02-04 40 views
0

这个正则表达式意味着什么?任何人都可以在这里解释_的意义。在java中的正则表达式_是什么意思

String s =("[ ]*[nN][eE][wW][ ]*"+s1+"[ ][\\t]*[ =_a-zA-Z]*"); 
+3

那么,'_'的含义是什么'_'? –

+0

只是强调'_',没什么特别的。如果's1'来自输入而没有通过'Pattern.quote()',你可能会注入正则表达式。 – nhahtdh

+0

而且你不需要在你的字符串的末端使用那些括号。这不是一个字符串文字。你没有在那里得到一个编译器错误? –

回答

2

没有特别的意义。所以它的字面意思是'_'字符。

您正则表达式表示:

  • 空间(” ')
  • 后跟 'n' 或 'N'
  • 随后的 'e' 或 'E'
  • 后跟' W '或 'W'
  • 接着空格('“),接着可变s1的内容
  • (可能Pattern.quote(S1)应在此处使用)
  • 接着空格(““),接着制表符
  • 重复零或多次
  • 后跟一个拉丁字母或下划线(_)或等号(”=‘)或空间(’”)重复零次或多次。
+0

谢谢。与最后一点有点混淆 – user2039417

+0

有人在你的问题中改变了正则表达式。它是'\ t',但现在它是'\\ t'。对我来说,你的原始版本很好。 Tab字符在Java正则表达式中没有特殊含义,所以不需要转义。 –

+0

@MikhailVladimirov:我编辑了这个问题,但是''''''''是一直存在的。 '\ t'和'\\ t'都很好。正则表达式还会将'\ t'(反斜杠t)作为制表符。 – nhahtdh

相关问题