将Java Pattern replaceAll转换为C#

时间:2018-08-14 00:34:41

标签: java c# regex

我有需要转换为C#的Java代码

private static final Pattern MISSING_PRODUCT_AT_START = Pattern.compile("^\\(( |;|null|compatible|windows|android|linux).*", Pattern.CASE_INSENSITIVE);

result = MISSING_SPACE.matcher(result).replaceAll("$1 $2");

第一部分可以用正则表达式转换为:

 private static readonly Regex MISSING_SPACE = new Regex("(/[0-9]+\\.[0-9]+)([A-Z][a-z][a-z][a-z]+ )", RegexOptions.IgnoreCase);

但是关于第二部分,我不知道Java replaceAll到底是什么意思,我不是Java专家

只是为了解释上下文,我正在将开放源代码库从Java转换为.NET

如何将.replaceAll("$1 $2");转换为C#?

1 个答案:

答案 0 :(得分:1)

通过阅读replaceAll的文档,我们可以看到它可以做到:

  

将输入模式中与模式匹配的每个子序列替换为给定的替换字符串。

Regex.Replace在.NET中的作用相同:

  

在指定的输入字符串中,将所有与正则表达式模式匹配的字符串替换为指定的替换字符串。

因此您可以将行转换为::

result = MISSING_SPACE.Replace(result, "$1 $2");

all中的单词replaceAll暗示它与Replace有所不同,但是我认为这只是将其与replaceFirst和{{1} }。