我尝试使用在线工具制作正则表达式,但没有成功。这是我需要匹配的字符串: -
27R4FF ^ 27R4FF文字直到结束
这是对我不起作用的正则表达式: -
((?:[a-z][a-z]*[0-9]+[a-z0-9]*))(\^)((?:[a-z][a-z]*[0-9]+[a-z0-9]*)).*?((?:[a-z][a-z]+))
c#代码: -
string txt = "784SFS^784SFS Value is here";
var regs = @"((?:[a-z][a-z]*[0-9]+[a-z0-9]*))(\^)((?:[a-z][a-z]*[0-9]+[a-z0-9]*)).*?((?:[a-z][a-z]+))";
Regex r = new Regex(regs, RegexOptions.IgnoreCase | RegexOptions.Singleline);
Match m = r.Match(txt);
Console.Write(m.Success ? "matched" : "didn't match");
Console.ReadLine();
帮助表示感谢。感谢
答案 0 :(得分:1)
Verbatim ^[^\W_]+\^[^\W_]+[ ].*$
^ # BOS
[^\W_]+ # Alphanum
\^ # Caret
[^\W_]+ # Alphanum
[ ] # Space
.* # Anything
$ # EOS
输出
** Grp 0 - ( pos 0 , len 28 )
27R4FF^27R4FF Text until end
答案 1 :(得分:1)
如果字符串“直到最后”,我才能得到#'应该匹配。
这适用于
27R4FF^27R4FF Text
^\w+\^\w+\s\w+$
如果最后有一些空格,请尝试
^\w+\^\w+\s[\w\s]+$
答案 2 :(得分:1)
试试这个:https://regex101.com/r/hD0hV0/2
^[\da-z]+\^[\da-z]+\s.*$
...或评论(如果您在代码中使用格式,则假设为RegexOptions.IgnorePatternWhitespace):
^ # always starts...
[\da-z]+ # ...with alphanumeric (case-insensitive)
\^ # then always caret sign ^ (no space before & after)
[\da-z]+ # then alphanumeric string
\s # then always one white space
.* # then string...
$ # ...until end.
其他答案实际上并不符合你所描述的(在撰写本文时),因为\ w匹配下划线而你没有提到对“最后字符串”的任何限制。