亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

Java RegEx元字符(。)和普通點?

Java RegEx元字符(。)和普通點?

撒科打諢 2019-09-02 15:19:28
在Java RegEx中,如何.在任何句子中找出(點)元字符和普通點之間的區別。如何處理這種情況的其他元字符太像(*,+,/d,...)
查看完整描述

3 回答

?
慕哥6287543

TA貢獻1831條經驗 獲得超10個贊

如果您希望正則字符中具有特殊含義的點或其他字符是普通字符,則必須使用反斜杠將其轉義。由于Java中的正則表達式是普通的Java字符串,因此您需要轉義反斜杠本身,因此需要兩個反斜杠,例如\\.


查看完整回答
反對 回復 2019-09-02
?
蕭十郎

TA貢獻1815條經驗 獲得超13個贊

其他成員提出的解決方案對我不起作用。

但我發現了這個:

在java regexp寫中轉義一個點 [.]


查看完整回答
反對 回復 2019-09-02
?
aluckdog

TA貢獻1847條經驗 獲得超7個贊

Perl樣式的正則表達式(Java正則表達式引擎或多或少基于它)將以下字符視為特殊字符:


.^$|*+?()[{\在字符類之外有特殊含義,


]^-\在字符類([...])中有特殊含義。


所以你需要根據上下文(或者在字符類的情況下,將它們放在不能被誤解的位置)來逃避那些(并且只有那些)符號。


不必要地轉義其他字符可能會起作用,但是一些正則表達式引擎會將其視為語法錯誤,例如\_會在.NET中導致錯誤。


其他一些會導致錯誤的結果,例如在Perl中\<被解釋為文字<,但在egrep其中意味著“單詞邊界”。


所以寫-?\d+\.\d+\$匹配1.50$,-2.00$等,并[(){}[\]]為一個字符類匹配各種支架/支架/括號。


如果需要將用戶輸入字符串轉換為正則表達式安全表單,請使用java.util.regex.Pattern.quote。



查看完整回答
反對 回復 2019-09-02
  • 3 回答
  • 0 關注
  • 777 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號