591 標籤驗證器

2021-09-23 05:49:57 字數 2513 閱讀 2149

給定乙個表示**片段的字串,你需要實現乙個驗證器來解析這段**,並返回它是否合法。合法的**片段需要遵守以下的所有規則:

**必須被合法的閉合標籤包圍。否則,**是無效的。

閉合標籤(不一定合法)要嚴格符合格式:tag_content。其中,是起始標籤,是結束標籤。起始和結束標籤中的 tag_name 應當相同。當且僅當 tag_name 和 tag_content 都是合法的,閉合標籤才是合法的

合法的tag_name僅含有大寫字母,長度在範圍 [1,9] 之間。否則,該tag_name不合法的

合法的tag_content可以包含其他合法的閉合標籤cdata(請參考規則7)和任意字元(注意參考規則1)除了不匹配的<、不匹配的起始和結束標籤、不匹配的或帶有不合法 tag_name 的閉合標籤。否則,tag_content不合法的

乙個起始標籤,如果沒有具有相同 tag_name 的結束標籤與之匹配,是不合法的。反之亦然。不過,你也需要考慮標籤巢狀的問題。

乙個<,如果你找不到乙個後續的>與之匹配,是不合法的。並且當你找到乙個<的前的字元,都應當被解析為 tag_name(不一定合法)。

cdata 有如下格式:cdata_content的範圍被定義成之間的字元。

cdata_content可以包含任意字元。cdata 的功能是阻止驗證器解析cdata_content,所以即使其中有一些字元可以被解析為標籤(無論合法還是不合法),也應該將它們視為常規字元

合法**的例子:

輸入: "this is the first line ]]>

"輸出: true

解釋:

**被包含在了閉合的標籤內: 和

。tag_name 是合法的,tag_content 包含了一些字元和 cdata 。

即使 cdata_content 含有不匹配的起始標籤和不合法的 tag_name,它應該被視為普通的文字,而不是標籤。

所以 tag_content 是合法的,因此**是合法的。最終返回true。

輸入: ">> ![cdata] ]>]]>]]>>]

"輸出: true

解釋:我們首先將**分割為: start_tag|tag_content|end_tag 。

start_tag -> ""

end_tag -> "

"tag_content 也可被分割為: text1|cdata|text2 。

text1 -> ">> ![cdata] "

cdata -> "]>]]>" ,其中 cdata_content 為 "]>"

text2 -> "]]>>]"

start_tag 不是 ">>" 的原因參照規則 6 。

cdata 不是 "]>]]>]]>" 的原因參照規則 7 。

不合法**的例子:

輸入: ""

輸出: false

解釋: 不合法。如果 "" 是閉合的,那麼 "" 一定是不匹配的,反之亦然。

輸入: "div tag is not closed "

輸出: false

輸入: "unmatched <

"輸出: false

輸入: "closed tags with invalid tag name123

"輸出: false

輸入: "unmatched tags with invalid tag name and

"輸出: false

輸入: "unmatched start tagand unmatched end tag

"輸出: false

注意:

為簡明起見,你可以假設輸入的**(包括提到的任意字元)只包含數字, 字母,'<','>','/','!','[',']'' '

shiro許可權驗證標籤

例項 spring shiro.xml 1 2 3 admin repairtype index roles role admin admin user roles role admin admin complaint list roles role service,role admin jsp頁面...

shiro許可權驗證標籤

例項 spring shiro.xml 1 2 3 admin repairtype index roles role admin admin user roles role admin admin complaint list roles role service,role admin jsp頁面...

shiro許可權驗證標籤

例項 spring shiro.xml 1 2 3 admin repairtype index roles role admin admin user roles role admin admin complaint list roles role service,role admin jsp頁面...