您当前的位置: 首页 > 慢生活 > 程序人生 网站首页程序人生
java(安卓)命名捕獲組 正則表達式一大殺器
发布时间:2021-06-21 21:29:14编辑:雪饮阅读()
都知道php很便捷,很簡單,今天在java或者説是安卓上看到了一個很不錯的東西。
説起正則表達式,大家都很頭疼,因爲這東西,目前大多數編程語言的語法都是沒有辦法把這家夥做到,一眼就能看出來表達式的意思的程度。
那麽在模匹配這點來説,以php爲例,是以小括號”()”去實現的,如果有多個模,則可以利用匹配結果中的下標來獲取每個模的匹配結果。
這點做的還不錯,但是下標這東西還是不夠方便。要説到真正的見名知意,那麽且看java(安卓)中是如何實現的
可以看到這是一個ffmpeg集成到安卓中進行格式轉換時候轉換過程的ffmpeg日志輸出的樣本。
爲了實現ffmpeg格式轉換進度,則可以通過解析這些日志,而正則在這裏的作用就顯而易見了。
可以看到這裏正則用模去匹配的,從表達式語法上面來説嵌入了以自定義模名字的標簽再配上對應模的匹配的正則表達式,這樣以來,就算表達式很長很長,那麽通過這些標記,也能很快調試(分析)每一個模。而不像php那樣一個表達式能把人看冒烟了一樣。。。
那麽還有一方面,就是從多個模匹配出來的結果中去獲取某個指定的模的匹配結果也可以像是關聯數組一樣通過“鍵名字”(自定義模名字)來獲取了。
這個好像是從java7才開始有的吧,在安卓中必須是minisdk的級別至少在26(對應安卓8)才可以用。
對於php這邊,目前我還沒有看到有類似這樣的用法。
最後補充下,在java中這東西叫做命名捕獲組。
关键字词:java,安卓,正則表達式,命名捕獲組