如何为项目符号空格数字和句点编写正则表达式



我正在使用regex,因为我的句子包含项目符号空格数字和句点。

• 1. This is sample Application
• 2. This is Sample java program

正则表达式:

•\s\d\.\s[A-z]
Required output:
This is sample Application.
This is Sample java program.

它不起作用。请建议我怎么做。

要匹配项目符号字符,需要使用unicode转义序列。然而,Unicode定义了几种项目符号样式,因此最好允许所有这些样式:

[u2022,u2023,u25E6,u2043,u2219]sd.s[A-z]

这应该匹配以下项目符号样式:

  • 项目符号(•)
  • 三角形项目符号
  • 白色项目符号(◦)
  • 连字符项目符号(-)
  • 弹头操作员(∙)

参考:https://en.wikipedia.org/wiki/%E2%80%A2

不要使用实际的'bullet',而是使用等效的unicode:

\u2022\s\d\。\s[A-z]

有关更多信息,请参阅Unicode字符"BULLET"(U+2022)和Regex教程-Unicode字符和属性

编辑:要拆分行(假设每行是一个单独的字符串),请尝试以下操作:

String firstString="•1。这是示例应用程序";System.out.println(firstString.split("\\u2022\\s\\d\\.\\s")[1]);

这是因为String.split在任何匹配的地方都会将字符串剪切成数组。[1]寻址该数组中的第二项,即拆分的后半部分。

使用此

String a="• 1. This is sample Application";
a = a.replaceAll("\u2022(?=\s\d\.\s[A-z])",""); // this will remove the • if only the bulet have \s\d\.\s[A-z] patern after it.
System.out.println(a);

为什么选择regex?你可以用这种方式

   String str="• 1. This is sample Application";
   String newStr=str.replaceAll("\•|\.",""); 
   // Or str.replaceAll("\u2022|\.","");u2022 is unicode value of bullet 
   System.out.println(newStr);

最新更新