gpt4 book ai didi

JAVA:用户定义标记的正则表达式

转载 作者:行者123 更新时间:2023-12-01 18:51:20 29 4
gpt4 key购买 nike

我需要对一组用户定义的标记运行正则表达式。

例如,我有一个这样的字符串: TOK3 TOK1 TOK2 TOK2 TOK4 TOK3//示例字符串

并使用这样的正则表达式: (TOK1|TOK2)+//正则表达式

我想捕获示例字符串中的标记序列:TOK1 TOK2 TOK2

现在,regexp 通常处理字符序列,因此我的问题略有不同,因为我的标记不是字符而是字符串。我的 token 可以由两个或多个字符组成。此外,我的软件应该能够检测到示例中的正则表达式与位置 (1, 4) 处的字符串匹配。

目前,我通过将每个标记映射到 ASCII 字母表中的一个字符并在删除空格后运行正则表达式来解决该问题。

但是,我对这个解决方案并不完全满意,我想知道是否有更好的解决方案。谢谢!

编辑

正则表达式中的空格仅用于分隔标记。它们并不真正意味着 token 之间必须有空格。

最佳答案

按照您的示例,这应该可以正常工作:

(?:(?:TOK1|TOK2|...)(?: |$))+

Matcher#start 方法将为您提供比赛开始的位置。

不过,因为这看起来很简单,我觉得我在你的问题中遗漏了一些东西......

关于JAVA:用户定义标记的正则表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15832994/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com