C# 如何检查文本是否以特定字符串结尾,例如(2)?

C# 如何检查文本是否以特定字符串结尾,例如(2)?,c#,regex,C#,Regex,我有下面的一组字符串,我需要测试是否有任何字符串以特定模式“(\d)”结尾 我尝试了下面的正则表达式,它只告诉我它包含以下模式: \((\d*?)\) 但是我已经检查过它必须只包含在字符串的末尾。测试中的第三个字符串应该失败。 编辑:正确的表达式 \((\d+)\)$ 如果通过测试,如何获取括号之间的最后一个数字 (1) => 1 解决方案:在匹配的组中,您将找到匹配的内容,只需将其替换为\1反向引用,您将得到1作为结果 使用$(线锚的末端),它断言我们在线的末端 @"\((\d*

我有下面的一组字符串,我需要测试是否有任何字符串以特定模式
“(\d)”
结尾

我尝试了下面的正则表达式,它只告诉我它包含以下模式:

\((\d*?)\)
但是我已经检查过它必须只包含在字符串的末尾。测试中的第三个字符串应该失败。
编辑:正确的表达式

 \((\d+)\)$

如果通过测试,如何获取括号之间的最后一个数字

(1) => 1
解决方案:在匹配的组中,您将找到匹配的内容,只需将其替换为\1反向引用,您将得到1作为结果

使用
$
(线锚的末端),它断言我们在线的末端

@"\((\d*)\)$"

使用
$
(线锚的末端),它断言我们在线的末端

@"\((\d*)\)$"

在结尾处使用(?=\n |$)。这将匹配新的行或结束

\((\d*?)\)(?=\n|$)
在结尾处使用(?=\n |$)。这将匹配新的行或结束

\((\d*?)\)(?=\n|$)
如果大括号之间的数字是必填的

如果它是一个我之前没有注意到的c,你可以做下面的操作,得到最后两个大括号之间的值

Regex.Match("User (10) name (20)", @"\((\d+)\)$").Groups[1].Value;
如果大括号之间的数字是必填的

如果它是一个我之前没有注意到的c,你可以做下面的操作,得到最后两个大括号之间的值

Regex.Match("User (10) name (20)", @"\((\d+)\)$").Groups[1].Value;

+1,哦。。我的错误是我把所有的绳子都放在一起测试,所以没能把它弄好。。顺便说一下,谢谢米尔@阿维纳什。。我能得到第二个问题的答案吗?@NiranjanKala:第二个问题是什么?如果它通过测试,我怎么能得到括号之间的最后一个数字?你已经在第1组了。在C#中,使用
match.Groups[1]。Value
@Avinash Raj:谢谢你的帮助。。我只是犯了一个小错误。。我的错误是我把所有的绳子都放在一起测试,所以没能把它弄好。。顺便说一下,谢谢米尔@阿维纳什。。我能得到第二个问题的答案吗?@NiranjanKala:第二个问题是什么?如果它通过测试,我怎么能得到括号之间的最后一个数字?你已经在第1组了。在C#中,使用
match.Groups[1]。Value
@Avinash Raj:谢谢你的帮助。。我只是犯了一个小错误。