我需要在一组用户定义的令牌上运行正则表达式。
例如,我有一个这样的字符串:
TOK3 TOK1 TOK2 TOK2 TOK4 TOK3
// 示例字符串
并使用这样的正则表达式:
(TOK1|TOK2)+
//正则表达式
我想捕获标记序列:TOK1 TOK2 TOK2
在我的示例字符串中。
现在,正则表达式通常适用于一系列字符,所以我的问题略有不同,因为我的标记不是字符而是字符串。我的令牌可以由两个或多个字符组成。此外,我的软件应该能够检测到示例中的正则表达式与位置 (1, 4) 处的字符串匹配。
目前,我通过将每个标记映射到 ASCII 字母表中的字符并在删除空格后运行正则表达式来解决问题。
但是,我对这个解决方案并不完全满意,我想知道是否有更好的解决方案。谢谢!
编辑
正则表达式中的空格仅用于分隔标记。它们并不真正意味着令牌之间的空格是强制性的。