那里 我对 C# 中的正则表达式有疑问, 代码:
// For 1D barcode scanner
Regex regex = new Regex("^(.*)\x0D$", RegexOptions.Compiled);
var match = regex.Match("1234\r");
match.Success 为真。然后我将代码更改如下:
// For 2D barcode scanner
Regex regex = new Regex("^(.*)$", RegexOptions.Compiled);
var match = regex.Match("1234\r");
match.Success 仍然为真(预期为假)。我不知道错误在哪里。
实际上字符串“1234\r”是一维条码扫描器的结果,一维条码扫描器的后缀在我的软件中是“\x0D”,而二维条码扫描器的后缀在我的软件中是空的。认为二维条码的正则表达式一定有问题。
最佳答案
在默认设置下,$
被解释为输入字符串的结尾,而不是一行的结尾。这将允许您的 .*
匹配任何可能添加的尾随空格。
如果你想排除这个,你可以用一个字符类来实现,比如 ^([^\r]*)$
关于c# - C#正则表达式中的"Enter"问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35544533/