工作上的一個需求 需要檢驗按照一定規則的字符串,格式如下:
形如${A.B.C}的格式,其中A部分只能為local或者global,B部分是一些諸如string、int等類型,C部分為自定義的任意字符串。同時A、B、C之間由點.進行分割。
實現思路如下:
1、首先用正則表達式匹配出所有的以${開頭並且以}結尾的字符串保存到一個數組中。
可以看到res數組中保存的就是我們獲取到的所有形如${...}的字符串的數組組合。
2、對字符串的A部分進行校驗
方法:直接判斷字符串是否包含${local. 或者${global. 即可
3、對匹配出來的字符串內部進行分割進一步校驗
由於字符串內部用.分割成A\B\C三部分,因此我們可以直接用.講字符串進行分割,首先判斷分割出來是不是預想的三個部分,如果不是直接匹配失敗。
對於分割成功為三個部分的字符串再繼續對B部分進行判斷:
首先預先定於一個函數,寫上允許B部分包含的類型
然后再對提取出來的B部分進行判斷:
4、由於C部分可允許任意字符串,因此在這里就不做相關校驗,那么需求提出來的相關字符串匹配提取完成。