如何在Ruby中捕获#定义?

如何在Ruby中捕获#定义?,ruby,regex,parsing,Ruby,Regex,Parsing,我正在尝试用Ruby创建一个快速的语言解析器。整个过程都正常,我可以用我的新语言成功地运行代码,但我无法让#define正常工作。我想将#define作为用我的临时语言创建函数的关键字 到目前为止,我已经使用正则表达式来标记我的代码,并从中解析代码,转换为JavaScript,然后将其导入节点 我尝试的正则表达式是/\b\\define\b/ 你知道为什么这样不行吗 注:这是为了我自己的娱乐,我不想做一个高效的解析器。通过添加\A而不是\b来修复,并添加了捕获组以满足我的需要 您应该删除模式开头

我正在尝试用Ruby创建一个快速的语言解析器。整个过程都正常,我可以用我的新语言成功地运行代码,但我无法让#define正常工作。我想将#define作为用我的临时语言创建函数的关键字

到目前为止,我已经使用正则表达式来标记我的代码,并从中解析代码,转换为JavaScript,然后将其导入节点

我尝试的正则表达式是
/\b\\define\b/

你知道为什么这样不行吗


注:这是为了我自己的娱乐,我不想做一个高效的解析器。

通过添加\A而不是\b来修复,并添加了捕获组以满足我的需要

您应该删除模式开头的
\b

#define\b
或者将
\b
替换为
\b

\B#define\b
前面有单词字符时,原始正则表达式将匹配
#define

单词边界基本上是一个单词字符,后跟一个非单词字符,反之亦然,不是吗

我认为如果在
之前有单词字符,您要做的是不匹配
\define
,因此我建议使用
\B


或者,如果要在行首匹配
#define
,请使用
^
并启用多行选项。

尝试删除第一个单词边界?@Sweeper是的,这似乎确实有效。添加了\a和捕获组以满足我的需要。
some word#define