如何在Java regex API中使用Pattern,Matcher删除特定行

问题描述

我有一个复杂的字符串拆分,我需要删除注释空格,并保留所有数字,但更改所有字符串转换为字符。如果-符号位于开头并后面有数字,请将其视为负数而不是运算符

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

输入:

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

输出

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

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

解决方法

  1. div替换不需要的字符串\s*\?\s*\w+\s*(?=\?)。您可以链接""以删除任何剩余的空格。请注意,String#replaceAll的意思是positive lookahead,这里的意思是?=,后跟\s*\?\s*\w+\s*。我希望您已经知道?指定空格,\s指定单词字符。
  2. 然后,您可以使用正则表达式\w,这意味着开头的负整数(即^-\d+|\d+|\D)或数字(即^-\d+)或非数字({{1 }}。

演示:

\d+

输出:

\D

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...