当前位置: 首页 > 面试题库 >

需要更改正则表达式以获取其他后缀条件

顾嘉纳
2023-03-14
问题内容

所以我有这段代码:

Pattern pattern = Pattern.compile("\\d*(\\s\\d+\\.)*\\s*[-\\+\\*/\\$£]");

String input = "4.0 5.0 2.0 / + 7.0 - 11.0 34.0 2.0 / 3.0 / 1.0 * +";
Matcher matcher = pattern.matcher(input);
List<String> output = new ArrayList<>();
while (matcher.find()) {
    output.add(matcher.group());
}

当我只解析整数时,正则表达式当然很好,但是我现在需要考虑到可能存在。代表一个浮点数。

想知道是否有人可以帮助我添加此内容

预期输出应为:

4.0 5.0 2.0 / 
+ 
7.0 - 
11.0 34.0 2.0 /
3.0 / 
1.0 * 
+

问题答案:

这将产生您想要的输出。逻辑或|运算符旁边的部分将匹配[-+*/$£]其余子字符串中的符号。

Pattern pattern = Pattern.compile("\\d+(?:\\.\\d+)?(\\s\\d+(?:\\.\\d+)?)*\\s*[-+*/$£]|[-+*/$£]");

String input = "4.0 5.0 2.0 / + 7.0 - 11.0 34.0 2.0 / 3.0 / 1.0 * +";
Matcher matcher = pattern.matcher(input);
ArrayList<String> output = new ArrayList<String>();
while (matcher.find()) {
    output.add(matcher.group());
}
for (String s: output)
{
    System.out.println(s);
}

输出:

4.0 5.0 2.0 /
+
7.0 -
11.0 34.0 2.0 /
3.0 /
1.0 *
+


 类似资料:
  • 问题内容: 我有以下示例字符串 我只对 test6IAmInterestedIn 感兴趣,它位于第四个斜杠之后,可以包含3个字符,多个字母并以3个数字结尾,即。 我想在上述正则表达式中添加的内容是,我总是在匹配的第四个斜杠之后选择字符串。我该怎么办? 问题答案: 你可以试试这个演示 哪里 匹配包含正斜杠的4个块 捕捉您想要的图案

  • 问题内容: 我有这个正则表达式使用向前和向后的前瞻: 我正在尝试将其从C#移植到Python,但始终收到错误 是否有可能用Python重写而不会失去意义? 这个想法是为了匹配类似 更新资料 我正在使用环顾四周解析已修改的HTTP多部分文本 我想在进行拆分时只获取文件路径和其他文本,而不必删除开始和结束标签 简短的代码很重要,但是如果它使正则表达式可行,我愿意更改格式。 问题答案: 对于同一数组中的

  • 我需要一个正则表达式来检查和删除< code > membership user < code > userName 中的特殊字符。 当我第一次将网站设置为测试版时,我没有考虑到特殊字符不是获取用户名的好方法,“在我的应用程序中”。 下面我有一段模板代码,写得不太正确,但是给了愿意帮助的人一个好的开始。 --我需要从用户名中删除所有特殊字符和空格,同时更新用户名。 当我说我所说的特殊字符~、`、!

  • 我有一个从Impala获取DDL的进程,并对其进行了一些更改以使其在SQL Server上工作。 我从黑斑羚那里得到了这样的东西 我设法删除了“外部表”位,因为我只需要“TABLE”,将“STRING”改为“VARCHAR”,将“TIMESTAMP”改为“DATETIME2”。还移除了底部的钻头,即存储为拼花地板位置“s3a://xxx”TBLProperty(“”) 我的问题是,一些列名,如年、

  • 我正在尝试使用一个Java正则表达式来提取数据。它符合我的数据,但我无法得到组数据。我正在尝试获取数据1,xmlAggregator,268803451,3。查看文档,我假设如果在\d+和\w+周围加上(),就会得到组中的数字和字符串。对如何更改正则表达式有什么建议吗? 字符串: Java代码: 输出: 希望得到:

  • 本文向大家介绍中缀表达式转后缀表达式相关面试题,主要包含被问及中缀表达式转后缀表达式时的应答技巧和注意事项,需要的朋友参考一下 参考回答: 对于中缀表达式,遇到操作数直接将其输出,如果遇到操作符和左括号全部压入栈中,若遇到右括号则将栈中元素全部弹出,直到遇到左括号为止。压栈过程中,若遇到其它操作符,从栈中弹出元素直到遇到更低优先级的操作符为止。