我有以下字符串集,我需要测试是否有任何字符串以特定模式"(\d)"
结束。
atat_vav(1)
atat_(2)vav(1)
atat_(2)vav
atat_(2)vav(1)(12)
atat_(2)vav(1)(3)
我试过下面的正则表达式只告诉我它包含如下模式:
\((\d*?)\)
但是我已经检查过它必须只包含在字符串的末尾。它应该在测试中失败第三个字符串 修改:更正表达
\((\d+)\)$
如果通过测试,我如何获得括号之间的最后一位数?
(1) => 1
解决方案:在匹配的组中,您会发现匹配的内容只是替换了\ 1后面的引用,结果会得到1。
答案 0 :(得分:2)
答案 1 :(得分:1)
最后使用(?= \ n | $)。这将匹配新行或END。
\((\d*?)\)(?=\n|$)
答案 2 :(得分:1)
@"\((\d+)\)$"
如果括号之间的数字是强制性的
如果它是一个我之前没有注意到的c#你可以进行下面的操作以获得最后一个大括号之间的值
Regex.Match("User (10) name (20)", @"\((\d+)\)$").Groups[1].Value;