C# 通过正则表达式查找匹配的字符串
本文关键字:字符串 查找 正则表达式 | 更新日期: 2023-09-27 18:31:04
我想找出我的字符串是否包含#1,#a,#abc,#123,#abc123dsds 等文本...(带有一个或多个字符(数字和字母)的"#"字符)。
到目前为止,我的代码不起作用:
string test = "#123";
boolean matches = test.Contains("#.+");
matches
变量为 false
。
String.Contains
不接受正则表达式。
使用Regex.IsMatch
:
var matches = Regex.IsMatch(test, "#.+");
test.Contains("#.+");
不能"理解"正则表达式。它从字面上检查字符串test
是否字面上包含#.+
字符序列,而#123
不包含这些字符序列。
请改用Regex.IsMatch
:
bool matches = Regex.IsMatch(test, "#.+");
演示。
或者没有正则表达式,你可以使用StartsWith
、Enumerable.Any
和char.IsLetterOrDigit
方法的组合,例如;
var s = "#abc123dsds+";
var matches = s.Length > 1 && s.StartsWith("#") && s.Substring(1).All(char.IsLetterOrDigit);
您需要使用正则表达式才能使用正则表达式模式。
string text = "#123";
Regex rgx = new Regex("#[a-zA-Z0-9]+");
var match = rgx.Match(text);
bool matche = match.Success)
嗯,这对我有用。 ''# 检查它是否
以 # 开头,''w 检查它是否是一个单词。
class Program
{
static void Main(string[] args)
{
string text = "#2";
string pat = @"'#('w+)";
Regex r = new Regex(pat);
Match m = r.Match(text);
Console.WriteLine(m.Success);
Console.ReadKey();
}
}