gpt4 book ai didi

java - 是什么导致这两个正则表达式的工作方式不同?

转载 作者:行者123 更新时间:2023-11-30 07:03:28 24 4
gpt4 key购买 nike

我在 Java 计算器程序中使用以下正则表达式来标记输入:

((?<=[(^+/*-])|(?=[(^+/*-]))

我之前使用过这个正则表达式(注意插入符移到了末尾):

((?<=[(+/*-^])|(?=[(+/*-^]))

这会导致问题,因为多位输入会被分割成单个字符。即,“11”将拆分为“1”、“1”。

我知道插入符是字符类前面的特殊字符,但为什么放在末尾会导致正则表达式无法正常工作?

最佳答案

[(+/*-^] , *-^匹配 * 范围内的字符至 ^ , 那是你的问题。

但是当你写 [(^+/*-] , 它匹配 ( 之一, ^ , + , / , *- .

更清晰的例子:

  • [12a-z]将匹配 1 , 2a 之间的字符和 z

  • [12az-]火柴1 , 2 , a , z-

关于java - 是什么导致这两个正则表达式的工作方式不同?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28391986/

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