用于匹配简单方括号 (C#) 的正则表达式
本文关键字:正则表达式 方括号 简单 用于 | 更新日期: 2023-09-27 18:35:33
我想知道一个正则表达式来检测以下内容(特别是对于 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))
顺便说一下,在结束简单括号之后允许空格,但没有其他字符。
谢谢
@"')$"
仅匹配以 )
结尾的字符串。你不妨把它写成s.EndsWith(")")
,你会得到相同的结果。
您可以使用
@"'([^()]*')$"
请参阅正则表达式演示(忽略'r?
,它仅用于演示)。
正则表达式匹配
-
'(
- 一个开圆括号 -
[^()]*
- 除(
和)
以外的零个或多个字符 -
')
- 一个结束圆括号 -
$
- 字符串的结尾。
C# 演示:
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
我认为这就是您要查找的: ([^()])''s$
''s* 表示字符串的末尾在右括号后可能有零个或多个空格字符。