匹配Email、通用數字和Java程式碼的正規表示式

banq發表於2018-10-23

這篇文章談了以Java為主的正規表示式用法,其中幾個案例值得收藏:

電子郵件地址

.+@.+\..++


這將捕獲大多數電子郵件地址,包括具有結尾的電子郵件地址,.co.uk但它也允許透過垃圾郵件a@b.c或bob@bob.bob

一般數字模式
不同的程式語言允許不同種類的數字表示。有些語言允許你在數字後加上'f'或'F'來表示它應該被解釋為float(而不是“double”精度整數)或'l'或'L'來表示它應該是一個“長”(雙倍寬度)整數。其他語言允許您使用“e”或“E”來表示科學記數法,允許使用前導“+”符號等。以下正規表示式允許大多數不同型別的數字表示(不帶尾隨'f'和'L'):

[+-]?([0-9]+\.?[0-9]*|\.[0-9]+)([eE][+-]?[0-9]+)?


解析Java程式碼
以下(極其複雜的)正規表示式解析Java方法的方法簽名。它匹配任何有效的Java方法簽名(據我所知!):

(?:(?:(public|protected|private)\s+)|(?:(abstract|static)\s+)|(?:(final)\s+)|(?:(volatile|synchronized)\s+)|(?:(native|strictfp)\s+))*([a-zA-Z_][[:alnum:]]+)\s+([a-zA-Z_][[:word:]<>\[\]]+)\s*\(\s*(?:(?:([a-zA-Z_][[:word:]<>\[\]]+)\s+([a-zA-Z_][[:alnum:]]+)\s*)(?:,\s*([a-zA-Z_][[:word:]<>\[\]]+)\s+([a-zA-Z_][[:alnum:]]+)\s*)*)?\)\s*\{

相關文章