2017-05-16 40 views
3

我正在使用此工具http://regexr.com/3fvg9 我想在regexxr工具中標記此(weat)她。使用regexr工具識別(weat)她

 (weath)er is good. // i want to mark this word 
     (weather is go)od. // i want to mark this word 

請幫幫我。

+0

您的意見說。然而,正則表達式不知道一個單詞是否已知,它只是匹配一系列特定的字符。我想你不想匹配'天氣(很好)',對吧?否則,[這樣的東西會很有用](http://regexr.com/3fvgc)。 –

+0

是的,我不想匹配這個詞。天氣(很好),(天氣)很好。 –

+0

然後你不能使用正則表達式。使用一些拼寫字典來檢查匹配的單詞,以接受或忽略與[this one](https://regex101.com/r/9PCacf/1)這樣的正則表達式的匹配(分析組1和2的內容)。 –

回答

1

由於無法用正則表達式檢查單詞是否「已知」,我建議首先提取您需要的這些部分,然後使用一種拼寫字典檢查單詞是否正確。它不會100%準確,但仍然比純正則表達式更好。

你需要用括號中提取的粘字部位的表達是

(?|([a-zA-Z0-9]+)\(([a-zA-Z\s]+)\)|\(([a-zA-Z\s]+)\)([a-zA-Z0-9]+)) 

見支持PHP正則表達式的regex demo at regex101

正則表達式匹配在其內部在不同的分支所有捕獲組的編號從相同ID的分支復位組2組內的替代:

  • ([a-zA-Z0-9]+)\(([a-zA-Z\s]+)\) - 匹配1+字母數字字符,然後第1組(([a-zA-Z0-9]+)(,然後第2組(([a-zA-Z\s]+))匹配1+字母和空格,然後)匹配
  • | - 或
  • \(([a-zA-Z\s]+)\)([a-zA-Z0-9]+) - 一個(,則第1組(([a-zA-Z\s]+))匹配1+字母和空格,),然後第2組(([a-zA-Z0-9]+))匹配 「知」 字1+字母數字字符
+0

請幫助這種模式。示例 https://regex101.com/r/9PCacf/8 –

+0

使用[this one](https://regex101.com/r/9PCacf/9)。 –

+0

請認真指導這一個。我想處理單個括號{,(),[ https://regex101.com/r/9PCacf/13 –