在我的Dot net应用程序中,我必须找到包含字母和数字值的所有单词,我试图找到但未能找到正确的答案
我有(?=.\d)\w+
正则表达式,但它返回45有效。下面是我的示例列表,其中粗体是正确的单词,其他是假单词
我不能放[a-zA-Z],因为我的文字可能包含非英语ex。 โครงการสาวอีสานก็5000บาท。
答案 0 :(得分:1)
(?:\d+[a-z]|[a-z]+\d)[a-z\d]*
此Reg Ex应符合您的要求。
答案 1 :(得分:1)
(?:^|(?<=\s))(?=\S*\d)(?=\S*(?!\s)\D)\S+(?=\s|$)
Try this.See demo.
答案 2 :(得分:1)
^(?!(\d+|[A-z]+)$)\w+$
(\d+|[A-z]+)$
:所有字母或全部数字。
(?!(\d+|[A-z]+)$)
:否定前瞻 - 断言不可能匹配所有字母或所有数字。
答案 3 :(得分:0)
all the words which contain alphabets and numeric values
fail to find proper answer I have
(?=.\d)\w+
You were close. The lookahead should match any word character before the digit to meet the numeric condition. And then, in the main pattern, require a letter:
Regex:
(?=\w*\d)\d*[A-Za-z]\w*
\w*
Any word character: [A-Za-z0-9_]
\d
Requires 1 digit.\d*
Any digits preceding a letter.[A-Za-z]
Requires 1 letter.\w*
Rest of the word答案 4 :(得分:0)
这也有效:
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