gpt4 book ai didi

java - Javacc 中 0 到 180 之间的数字和小数位的正则表达式

转载 作者:行者123 更新时间:2023-11-30 03:31:20 25 4
gpt4 key购买 nike

因此,我使用正则表达式在 JavaCC 中创建一个 token 。

我试图只允许 3数字且仅在 0 - 180 之间.

此外,我尝试只允许(在单独的 token 中)0 之间的 2 位数字和59.9999 (小数点后 4 位)。

我不知道如何在 JavaCC 中为这两个标记创建正则表达式...

任何带有解释的帮助都会很棒,谢谢:)

最佳答案

对于第一种情况,您的模式需要允许 1 位数字、2 位数字、第一个数字为 1、第二个数字在 0-7 范围内的 3 位数字,以及特殊情况 180。正则表达式看起来像

[0-9]{1,2}|1[0-7][0-9]|180

(我不知道 javacc,所以我不知道如何使用这个正则表达式,或者您是否需要其他东西来防止像 1800 这样的东西被解析为数字,或者作为两个数字。您可能需要在末尾使用 \b 来指示单词边界,但我不知道 javacc 是如何工作的。)

对于第二种情况,小数点左边的部分可以是一位数字,也可以是两位数字,其中第一位数字在 0-5 范围内。您的要求尚不清楚,但如果要求 token 有小数点和小数点右侧一到四位数字,则正则表达式将为

([0-9]|[0-5][0-9])\.[0-9]{1,4}

同样,我不知道 javacc 如何处理单词边界。

请注意,如果这是一个 Java 程序,我建议(在第一种情况下)将其解析为整数并将其与 0 和 180 进行比较。太多的提问者尝试使用正则表达式来解决每个问题,但它们是并不适合所有问题。由于这是针对 javacc 的,因此可能是正则表达式易于使用而数字比较则不然的上下文 - 正如我所提到的,我对 javacc 一无所知。

关于java - Javacc 中 0 到 180 之间的数字和小数位的正则表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28934479/

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