2016-09-09 35 views
-1

我有一個自定義標記的詞性。我想檢查它們是否連續。 我的字符串是正則表達式匹配連續標記忽略它們之間的文本

<pronouns></pronouns><pronouns></pronouns><verbs></verbs><determiners></determiners><noun></noun> 

例如:如果我使用這個表達式(<pronouns><\/pronouns>)\1{1}它給了我兩個代詞標籤連續

**<pronouns></pronouns><pronouns></pronouns>**<verbs></verbs><determiners></determiners><noun></noun> 

,如果我用這個正則表達式(<pronouns><\/pronouns><verb><\/verb>)\1{0} 它給了我代詞和動詞的標籤之一發生,如果我將它修改爲(<pronouns><\/pronouns><verb><\/verb>)\1{1}它會給我兩個連續出現的代詞和動詞標記。 問題是這樣的,如果有它不匹配,如果它是連續的上面,如果你使用正則表達式上

<pronouns>Hello</pronouns><pronouns>Hi</pronouns><pronouns>Hi</pronouns><verbs>Ok</verbs><determiners>the</determiners><noun>people</noun> 

匹配失敗的標籤之間的任何文本。

如何使用前面的條件將正則表達式與文本進行匹配,並獲取連續標籤標籤之間的文本。

+2

這有點不清楚,請說明你想得到什麼輸出。嘗試'((。*?)<\/pronouns>)\ g <1>'。你需要匹配哪些標籤之間的文字? '你好'和'你好'在'你好'?什麼是正則表達式? –

回答

0

如前所述 - 這不是很清楚......但是如果我理解正確的話,如果有兩個連續的pronoun-標記,無論他們的文本內容是什麼,都要匹配。

如果這是正確的,你可以嘗試

(?:<(pronouns)>.*?<\/\1>){2} 

這第一pronoun - 標籤相匹配,捕獲的名稱。然後它會匹配任何文本直到結束標記。匹配,然後重複相同的模式。

Check it out here at regex101

+0

這是我所期望的,但問題是如果我想要一個代詞和動詞懺悔,它不會捕獲懺悔。我的舊正則表達式(<\/pronouns>)\ 1 {1}那樣做。我如何修改你的正則表達式來實現上述 – riskycoder