我正在使用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);