Suj*_*jju 1 java pattern-matching
我试图捕捉''部分,'<'和'>'符号内的内容可能会有所不同.它可能还包含一些点.所以我正在努力
String Inputstr = "SOME <Module Name> Module";
ptrn = Pattern.compile("<.*>", Pattern.DOTALL);
mtch = ptrn.matcher(Inputstr);
if (mtch.matches()) {
// Do a replacement operation
}
Run Code Online (Sandbox Code Playgroud)
但问题是它根本没有进入if条件.感谢帮助.
你应该使用find而不是matches.(matches要求整个字符串匹配.)
String Inputstr = "SOME <Module Name> Module";
Pattern ptrn = Pattern.compile("<.*>", Pattern.DOTALL);
Matcher mtch = ptrn.matcher(Inputstr);
if (mtch.find()) {
System.out.println("The <...> part: " + mtch.group()); // <Module Name>
}
Run Code Online (Sandbox Code Playgroud)
此外,你不需要DOTALL,除非你有间换行字符<和>.
如果您确实想要将模块名称替换为另一个字符串,则可以执行以下操作:
String Inputstr = "SOME <Module Name> Module";
String outputStr = Inputstr.replaceAll("<.*>", "A-module-name");
^^^^^^^^^^
System.out.println(outputStr); // "SOME A-module-name Module"
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
93 次 |
| 最近记录: |