如何使用 Java 正则表达式 API 中的 Pattern、Matcher 删除特定行

2024-03-28

我有一个复杂的字符串分割,我需要删除comments, spaces,并保留所有numbers但改变一切string into 特点。如果-符号在开头,后跟一个数字,将其视为负数而不是运算符

评论的风格是?<space>comments<space>?(评论是占位符)

Input :

-122+2 ? comments ?sa b
-122+2 ? blabla ?sa b

output :

 ["-122","+","2","?","s","a","b"]  

(所有字符串都变成字符,没有空格,没有注释)


  1. 替换不需要的字符串\s*\?\s*\w+\s*(?=\?) with ""。你可以连锁String#replaceAll删除任何剩余的空白。注意?= means 积极的前瞻 https://www.regular-expressions.info/lookaround.html这意味着\s*\?\s*\w+\s*随后是一个?。我希望你已经知道了\s指定空格和\w指定单词字符。
  2. 然后你可以使用正则表达式,^-\d+|\d+|\D这意味着开头的负整数(即^-\d+)或数字(即\d+) 或非数字 (\D).

Demo:

import java.util.regex.Matcher;
import java.util.regex.Pattern;

public class Main {
    public static void main(String[] args) {
        String str = "-122+2 ? comments ?sa b";
        str = str.replaceAll("\\s*\\?\\s*\\w+\\s*(?=\\?)", "").replaceAll("\\s+", "");

        Pattern pattern = Pattern.compile("^-\\d+|\\d+|\\D");
        Matcher matcher = pattern.matcher(str);
        while (matcher.find()) {
            System.out.println(matcher.group());
        }
    }
}

Output:

-122
+
2
?
s
a
b
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何使用 Java 正则表达式 API 中的 Pattern、Matcher 删除特定行 的相关文章

随机推荐

  • 如何获取 PromptDialog.Choice 功能并仍然允许 Bot Framework 中的其他用户响应?

    Bot Framework 中的 PromptDialog Choice 提供了许多运行良好的内置功能 但是 我希望能够拦截 覆盖匹配过程 获得 PromptDialog Choice 功能并且还能够接受某些可能不匹配的字符串的最佳方法是什
  • 卡西尼号源代码下载链接?

    有谁知道哪里可以下载卡西尼号的源代码吗 我尝试了链接http www asp net Projects Cassini Download http www asp net Projects Cassini Download但该页面现在不存在
  • 如何从“struct linux_binprm”获取argv

    我想使用 bprm check security lsm 挂钩来检查是否允许运行具有特定参数的进程 在文档中 我看到 argv 应该在 bprm 类型为 struct linux binprm 中可用 但我没有找到任何从结构中提取 argv
  • 需要VC6平台SDK

    有谁知道我可以在哪里下载最后一个与 VC6 一起使用的 Platform SDK 我通过谷歌搜索找到的链接似乎都已失效 我设法在这里找到它 官方或非官方 http docs moodle org dev FebruaryPlatformSD
  • Gradle 日志在哪里?

    Android Studio 中应用程序的 Gradle 构建会生成以下错误 Error Execution failed for task app compileDebugJavaWithJavac gt java lang Runtim
  • 计算所有结构不同的二叉树的数量的时间复杂度是多少?

    使用此处介绍的方法 http cslibrary stanford edu 110 BinaryTrees html java http cslibrary stanford edu 110 BinaryTrees html java 12
  • 变量列表中的逗号是序列点吗?

    在以下类型的代码中 每个变量构造之间是否存在序列点 或者结果未定义 int a 0 int b a c a 我无法在标准中找到对此处序列点的具体引用 这是否意味着它未定义 或者只是我的搜索失败了 表达式的完成是一个序列点 但是上面的初始化也
  • 在 R 中为 pentium 4 HT 机器使用多核

    我在办公室使用Pentium 4 HT机器来运行R 一些代码需要plyr包 我通常需要等待6 7分钟才能完成脚本运行 而我看到我的处理器只使用了一半 我听说在 R 中使用多核包可以更好地利用多核处理器 我的情况适合吗 Thanks 有很多软
  • PyInstaller 2.1导入自定义包

    我有一个脚本正在尝试使用 Python 2 7 使用 PyInstaller 2 1 进行编译 该脚本使用我编写的名为 auto common 的自定义包 在脚本中 我使用以下命令导入它 sys path append path to pa
  • 如何在 Jupyter 中插入文字选项卡而不是自动完成?

    缩进整行很容易 Just highlight the whole line and press Tab Go to the start of the line and press Tab Click anywhere in the line
  • 如何获取枚举数

    如何获取枚举数 我有一个枚举 typedef enum DEL TIME VALUE 1 DEL TIMESEC VALUE 100 DEL TIMEMIN VALUE 200 DEL TIMEHOUR VALUE 300 DEL DAY
  • 用正则表达式获取最终的特殊字符

    我想要一个正则表达式 将字符串末尾的一些特殊字符分组 特殊字符是 和空格 例如 如果我有字符串 test 我想在组中获取字符串 我创建了以下正则表达式 问题是它给了我以下字符串 为什么要提取最后的括号 Put the 字符类中第一个或最后一
  • 循环选择某列并单独保存

    我的数据框是 c1 c2 c3 c100 0 2 0 4 0 9 0 0 2 0 3 0 1 0 1 0 6 1 0 3 我想选择c1 c2和c3 c1 c2和c4 类似的c1 c2和c100 每 3 个选定的列应保存在单独的文件中 我该怎
  • XNA 屏幕截图显示预绽放,而不是最终渲染

    我有一个使用 Reach 图形设置在 C XNA 4 0 中编码的 Windows 平台游戏 我的项目基于 GameStateManagement 示例 但后来我向其中添加了 Bloom 和 spriteSheet spriteBatch
  • Java Web 应用程序作为桌面应用程序,我应该选择哪些框架?

    我需要制作一个网络应用程序 我可以将其作为桌面应用程序安装在客户端 PC 上 数据库 jetty war firefox chrome sth 便携式 该应用程序是一个相当大的搜索应用程序 我必须使用 Lucene 只有几个屏幕 搜索队列中
  • 如何获得 makefile 函数来停止当前目标?

    我在 makefile 中有一个函数 如果文件不存在 或者至少是执行它的目标不存在 我想停止整个 make 运行 vaultfile vault shell test f 1 exit 1 define get token shell te
  • Fullcalendar 在事件点击时获取资源 ID

    我正在使用全日历 一切工作正常 但在事件单击时未获取 Resourceid 这是我的代码 var date new Date var d date getDate 1 var m date getMonth var y date getFu
  • 在 Openshift 中哪里可以查看控制台日志?

    最近 我将 JSP 项目部署到 Openshift 服务器中 现在我的愿望是查看控制台日志 假设 如果我打印System out println Message 在我的 JSP 项目中 如何看到该消息打印到 Openshift 服务器的控制
  • java中“限定this”构造是什么意思?

    In 在 第 22 项 优先考虑静态成员类而不是非静态成员类 项目中 Josh Bloch 说 非静态成员类的每个实例都隐式关联到一个 其包含类的封闭实例 在非静态的实例方法内 成员类 您可以调用封闭实例上的方法或获取引用 使用限定的 th
  • 如何使用 Java 正则表达式 API 中的 Pattern、Matcher 删除特定行

    我有一个复杂的字符串分割 我需要删除comments spaces 并保留所有numbers但改变一切string into 特点 如果 符号在开头 后跟一个数字 将其视为负数而不是运算符 评论的风格是