C# 使用正则表达式查找包含数值的所有单词?
在我的dotnet应用程序中,我必须找到所有包含字母和数字值的单词,我试图找到,但没有找到正确的答案 我有C# 使用正则表达式查找包含数值的所有单词?,c#,.net,regex,C#,.net,Regex,在我的dotnet应用程序中,我必须找到所有包含字母和数字值的单词,我试图找到,但没有找到正确的答案 我有(?=。\d)\w+正则表达式,但它返回45作为有效值。下面是我的示例列表,其中粗体是正确的单词,其他是错误的单词 madan45 45马丹 mad45an 马丹 45 我不能放[a-zA-Z],因为我的文本可能包含英语以外的内容。โครงการสาวอีสานก็5000บาท. (?:\d+[a-z]|[a-z]+\d)[a-z\d]* 此Reg Ex应适用于您的要求 包含字母和数
(?=。\d)\w+
正则表达式,但它返回45作为有效值。下面是我的示例列表,其中粗体是正确的单词,其他是错误的单词
- madan45
- 45马丹
- mad45an
- 马丹
- 45
我不能放[a-zA-Z],因为我的文本可能包含英语以外的内容。โครงการสาวอีสานก็5000บาท.
(?:\d+[a-z]|[a-z]+\d)[a-z\d]*
此Reg Ex应适用于您的要求
包含字母和数字值的所有单词
找不到正确的答案我有(?=。\d)\w+
你很接近。应匹配数字前的任何单词字符以满足数字条件。然后,在主模式中,需要一个字母:
Regex:
(?=\w*\d)\d*[A-Za-z]\w*
任何单词字符:\w*
[A-Za-z0-9\]
需要1位数字\d
字母前面的任何数字\d*
需要1个字母[A-Za-z]
单词的其余部分\w*
(?:^|)(?)?
(\d+|[A-z]+)$
:所有字母或数字
(?!(\d+|[A-z]+)$)
:负前瞻-断言不可能匹配所有字母或所有数字。这也适用于:
string pattern = @"^(?=\D*\d)(?=\d*\D)\w+$";
检查:
var inputs = new List<string> { "madan45", "45madan", "mad45an", "Madan", "45" };
foreach (var str in inputs)
Console.WriteLine($"{str} - {Regex.IsMatch(str, pattern)}");
我不能放[a-zA-Z],因为我的文本可能包含英语以外的内容。โครงการสาวอีสานก็5000บาท@vsk我忘了检查一些条件,如(7-8),(14.20),(1000),(5555+),(50%),(“10)”,(“10”),([200])这些条件是不正确的,但上面的正则表达式也提取了这些条件。@madan您可以在character类中添加所有字符。我已经为您定义了一些。如果我在一个sting中传递的单词超过1个,则不匹配
string pattern = @"^(?=\D*\d)(?=\d*\D)\w+$";
var inputs = new List<string> { "madan45", "45madan", "mad45an", "Madan", "45" };
foreach (var str in inputs)
Console.WriteLine($"{str} - {Regex.IsMatch(str, pattern)}");
// madan45 - True
// 45madan - True
// mad45an - True
// Madan - False
// 45 - False