如何实现JFLEX中的情况不敏感的正则表达模式。
使用标准(?i :)符号似乎不起作用。
例如:
To match the case insensitive word "class", the regex would be (?i:class).
But this doesn't work in a JFlex specification.
使用其中一个指令:
- %caseless
- %ignorecase
手册:
此选项使JFLEX在规范中处理所有字符和字符串,就好像它们以大写和小写形式指定一样。这使得可以轻松指定具有案例不敏感关键字的语言的扫描仪。规范中的字符串"断裂"例如像表达式一样处理([bb] [rr] [ee] [aa] [kk])。%无壳选项不会更改匹配的文本,也不会影响字符类。因此,[a]仍然只匹配字符A,而不是A。哪些字母是大写的,哪些小写字母由Unicode标准定义,由JFLEX用Java方法字符确定。在JLEX兼容模式(命令行上的-JLEX开关),%caseless和%ignorecase也会影响字符类。