2013-02-04 39 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

相關問題