小编sse*_*sen的帖子

使用带有java的regexp替换多个捕获组

我有这个要求 - 对于输入字符串,如下所示

8This8 is &reallly& a #test# of %repl%acing% %mul%tiple 9matched9 9pairs
Run Code Online (Sandbox Code Playgroud)

我想剥离匹配的单词边界(匹配对为8或&或%等),并将导致以下结果

This is really a test of repl%acing %mul%tiple matched 9pairs
Run Code Online (Sandbox Code Playgroud)

用于这些对的字符列表可以变化,例如8,9,%,#etc,并且只有与每种类型匹配开头和结尾的单词将被剥离这些字符,并且在单词中保留相同的字符它是.

使用Java我可以做一个模式\\b8([^\\s]*)8\\b和替换为$ 1,以捕获和替换所有出现的8 ... 8,但是我如何对所有类型的对进行此操作?

我可以提供一个类似\\b8([^\\s]*)8\\b|\\b9([^\\s]*)9\\b..等等的模式来匹配所有类型的匹配对*8,9,..),但是如何指定'变量'替换组 -

例如,如果比赛是9 ... 9,则替换应为2美元.

我当然可以通过其中的多个来运行它,每个都替换一个特定类型的对,但我想知道是否有更优雅的方式.

还是有一种完全不同的方法来解决这个问题?

谢谢.

java regex

7
推荐指数
1
解决办法
1580
查看次数

标签 统计

java ×1

regex ×1