我正在尝试匹配一个写成单词、数字或罗马数字的数字。这是一堆样本
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 章和第 3 章,但尝试将 IV 匹配为一个单词(我猜它与 FIVE 匹配?)。二十二 根本不匹配。
任何人都可以帮忙吗?这是完整的正则表达式
(CHAPTER (
([0-9]+)|
((TWENTY|THIRTY)?( |-)?(ONE|TWO|THREE|FOUR|FIVE)?)|
((I|II|III|IV|V)+)
))
笔记:
这样做的目的是将这些文本表示形式转换为实际的整数。在每种情况下我都有方法可以做到这一点,所以我确实需要区分各种情况