在这种情况下如何编写正则表达式?

时间:2020-03-09 21:11:24

标签: java regex replace

如何编写正则表达式以删除<start:person>之前和<End>末尾的“-”,“。”,“ /”等字符。

示例

----------------------------------------------
S23.<START:datetime> SEP.96 <END> 
              To 
S23 <START:datetime> SEP.96 <END> 
----------------------------------------------
S23.<START:datetime> SEP.96 <END>- 
              To 
S23 <START:datetime> SEP.96 <END> 
----------------------------------------------

因此我要删除

-
,
`
.
这些注释之前的

等。

1 个答案:

答案 0 :(得分:2)

下面的代码可以做到:

String input = ...;
final Pattern specials = Pattern.compile("[-,`.]+");
String output = Pattern.compile("(?mi)^(.*?)(<START:(?s:.*?)<END>)(.*)$").matcher(input).replaceAll(mr ->
    specials.matcher(mr.group(1)).replaceAll("") + mr.group(2) + specials.matcher(mr.group(3)).replaceAll(""));