我需要一个Reqular表达式来识别我的C#代码中的以下格式的字符串。该字符串将始终以" REG"并包含3个下划线,下划线之间有2个单词和一个数字。见下面的例子:
Example: "REG_SOFTWARE_SECURITY_1234"
我使用了论坛建议的以下REGEX表达式:
"\b[a-zA-Z0-9_]+\b"
但它传递了错误的输入,如:
REG_1234
因此,它只应以格式传递输入 - " REG_SOFTWARE_SECURITY_1234"有什么建议?
答案 0 :(得分:1)
我没有看到你的正则表达式的问题。您可能在c#中错误地使用它。
试试这个
var str="ALPHABET_ ALPHABET _ ALPHABET _99";
var res = Regex.Matches(str,@"\b[a-zA-Z0-9_]+\b");
foreach (Match match in res)
{
Console.WriteLine(match.Value);
}
答案 1 :(得分:0)
你的意思是ALPHABET
写的一封信吗?
然后你可以尝试\w+_ \w+ _ \w+ _\d+
,如果你想要空格,你正在搜索单词,而不仅仅是字母。
如果您想找到Letter Underscore Blank
等模式,请尝试\w_ \w _ \w _\d
。
答案 2 :(得分:0)
搜索字符串中的反斜杠未按预期解释。 C#字符串"\b[a-zA-Z0-9_]+\b"
以“退格”0x0008字符开头和结尾。
要匹配示例字符串,您需要使用"\\b[a-zA-Z0-9_]+\\b"
或@"\b[a-zA-Z0-9_]+\b"
作为正则表达式。
如果任务是匹配一个字符串,其中包含两个单词和一个由三个下划线分隔的数字,则以下内容应该有效:
@ “\ B [A-ZA-Z] + _ [A-ZA-Z] + _ [A-ZA-Z] + _ [0-9] + \ b” 的