我試圖匹配寫成單詞,數字或羅馬數字的數字。下面是一堆樣品正則表達式匹配寫成單詞,數字或羅馬數字的數字
CHAPTER 1
CHAPTER 2
CHAPTER THREE
CHAPTER IV
CHAPTER TWENTY TWO
的我在正則表達式非常糟糕,這裏就是我這麼遠。
(CHAPTER (([0-9]+)|(/* words - see below */)|(/* roman - see below */)))
// words
(TWENTY|THIRTY|etc)?(|-)?(ONE|TWO|THREE|FOUR|FIVE|etc)?
// roman
(I|II|III|IV|V|etc)+
聲明捕捉第1章,第2章和第三章,但嘗試匹配IV作爲一個單詞(我猜它匹配FIVE不知何故?)。二十二根本不匹配。
任何人都可以幫忙嗎?下面是完整的正則表達式
(CHAPTER (
([0-9]+)|
((TWENTY|THIRTY)?(|-)?(ONE|TWO|THREE|FOUR|FIVE)?)|
((I|II|III|IV|V)+)
))
注:
這樣做的關鍵是把這些文本的格式轉換成實際的整數。我的方法來做到這一點在每種情況下,所以我做需要的各類案件
你'章IV'在這裏寫成'章V',感嘆號VS'I'!如果這是您的文件中的內容,則不匹配。 – 2014-09-19 21:54:58
除非有必要明確地寫出這些,否則會更容易做'章(\ w +(?: \ w +)?)' – hwnd 2014-09-19 21:59:44
@BobKaufman這是一個錯字。在原始 – roryok 2014-09-20 07:11:42