首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Regex:我不能为匹配关键字创建Regex吗?

Regex:我不能为匹配关键字创建Regex吗?
EN

Stack Overflow用户
提问于 2013-11-09 18:23:16
回答 2查看 133关注 0票数 1

我对Regex有点陌生,我创建了regex,用于匹配数字、操作和标识符,但我无法处理如何识别下一个令牌是语言关键字,例如:

int or double or public .....

这是我的代码:

代码语言:javascript
复制
enum TokenType{
NUMBER("-?[0-9]+.[0-9]+|-?[0-9]+"),      //int and double
OPERATION("[*|/|+|-]"),                 // arithmetic operations  
WHITESPACE("[ \t\f\r\n]+"),            // white space
IDENTI("[_]*[A-Za-z][A-Za-z0-9]*[[_]*[A-Za-z0-9]*]*"),// string like _string_string_..
//......

这里的问题是,像int这样的每个关键字都将成为一个标识符,例如,如果我们有

public static int NUMBER_OF_STUDENT;

输出: 公众身份证 静态IDENTI IDENTI 嗯..。伊丹蒂 .

如何创建另一个正则表达式来匹配像int, double, ....这样的关键字

如果需要的话,我会把这个程序的全部代码都贴出来。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-11-09 18:28:24

你的模式应该是:

代码语言:javascript
复制
"(int|double|public|...and so on)"

没什么花哨的

票数 0
EN

Stack Overflow用户

发布于 2013-11-09 18:44:22

代码语言:javascript
复制
(?!int)(?!double)([a-z0-9]+)

将与ntblah、itblah和dblah相匹配,但不匹配intblah和doubleblah。

(?! int )表示不匹配以int开头的任何内容。这将成为标识符的正则表达式,只需使用该语法来排除所有关键字。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/19881437

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档