我正在使用正则表达式,因为我的句子包含项目符号空格数字和点。
• 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]\s\d\.\s[A-z]
这应该与以下项目符号样式匹配:
不要使用实际的“子弹”,而是使用 unicode 等效项:
\u2022\s\d\.\s[Az]
有关更多信息,请参阅Unicode 字符 'BULLET' (U+2022)和正则表达式教程 - 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);