gpt4 book ai didi

java - 将正则表达式从 java 转换为 .Net

转载 作者:行者123 更新时间:2023-11-30 03:31:00 24 4
gpt4 key购买 nike

我正在将一个项目从 java 转换为 C#。我不知道 C# 中以下正则表达式的等价性是什么。

The regular expression : Customer rating (?<rating>\d.\d)/5.0
The java string : "Customer rating (?<rating>\\d.\\d)/5.0"

这是java代码:

private static final Pattern ratingPattern = Pattern.compile("Customer rating (?<rating>\\d.\\d)/5.0");
...
m = Retriever.ratingPattern.matcher(X);
if (m.matches()) {
...
}

它适用于( X=客户评级 1.0/5.0 )。但这是 C# 代码:

static Regex rx = new Regex(@"Customer rating (?<rating>\\d.\\d)/5.0");
...
MatchCollection matches = rx.Matches(X);
if (matches.Count > 0)
{
...
}

它不适用于 ( X=客户评分 1.0/5.0 )。我的意思是 (Matches.count) 对于 ( X=客户评分 1.0/5.0 ) 始终为 0

如果您有任何想法,请帮助我。

谢谢

最佳答案

如果正则表达式出现在逐字字符串中,则无需再次转义 baclslash。

@"Customer rating (?<rating>\d\.\d)/5\.0"

并且还转义正则表达式中存在的所有点,因为点匹配任何字符,而不仅仅是文字点。

在逐字字符串中,\\d 匹配文字反斜杠和字符 d。因此,您的正则表达式会搜索反斜杠和文字 d。因为没有,所以你的正则表达式失败了。

关于java - 将正则表达式从 java 转换为 .Net,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29048060/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com