我想知道一个正则表达式来检测以下内容(特别是对于C#):
字符串是否以简单括号内的文本结尾。例如:
有些比赛:
this is a string (dsdfgfg)
this is a (string (123456)
以下是一些示例代码,用于检测字符串是否以简单括号结尾。
static void Main(string[] args)
{
const string s = "this is a sentence (367662288)";
var result = Regex.IsMatch(s, @"\)$");
Console.WriteLine(result); // true
}
一些非匹配:
this is a string (fdf
this is a string (dsdfgfg) temp
this is a string (dsdfgfg))
顺便说一下,在关闭简单括号之后允许空格,但没有其他字符。
由于
答案 0 :(得分:2)
@"\)$"
仅匹配以)
结尾的字符串。你也可以把它写成s.EndsWith(")")
,你会得到相同的结果。
您可以使用
@"\([^()]*\)$"
请参阅regex demo(忽略\r?
,仅用于演示。)
正则表达式匹配
\(
- 一个开头圆括号[^()]*
- 除(
和)
\)
- 结束圆括号$
- 字符串结束。using System;
using System.Text.RegularExpressions;
using System.IO;
public class Test
{
private static readonly Regex rx = new Regex(@"\([^()]*\)$", RegexOptions.Compiled);
public static void Main()
{
var strs = new string[] {"this is a string (dsdfgfg)","this is a (string (123456)",
"this is a (string) (FF4455GG)","this is a string (fdf","this is a string (dsdfgfg) temp",
"this is a string (dsdfgfg))"};
foreach (var s in strs)
{
Console.WriteLine(string.Format("{0}: {1}", s, rx.IsMatch(s).ToString()));
}
}
}
结果:
this is a string (dsdfgfg): True
this is a (string (123456): True
this is a (string) (FF4455GG): True
this is a string (fdf: False
this is a string (dsdfgfg) temp: False
this is a string (dsdfgfg)): False
答案 1 :(得分:0)
我认为这就是你要找的东西:([^()] )\ s $
\ s *表示在结束括号后,字符串的结尾可能有零个或多个空白字符。