我正在尝试包含一个udev规则来创建一个自定义的/ dev / entry,具体取决于usb设备属性。我有两个不同的条形码扫描仪,它们将条码扫描器和条形码扫描器一词放入制造商的产品中。
所以我想知道是否可以通过将正则表达式添加到ATTRS {manufacturer}来使其工作,如下所示:
ATTRS{manufacturer}=="(([bB]ar\ ?[Cc]ode\ ?)([Ss]can\ ?(ner)?))"
或者我应该:
ATTRS{manufacturer}=="\([Bb]ar\(\s\?\)[Cc]ode\s\?[Ss]can\)"
上面提到的正则表达式将接受以下变体:
Bar code Scanner
barcode scanner
barcodescanner
Barcode Scanner
bar code scanner
bar code scan
Bar Code Scan
BarCode Scaner
barCode scanner
答案 0 :(得分:5)
它支持以下模式字符:
- “*”匹配零个,一个或多个字符。
- “?”匹配任何单个字符,但不匹配零字符。
- “[]”匹配括号内指定的任何单个字符。例如,模式字符串“tty [SR]”将匹配“ttyS”或 “ttyR”。在这场比赛中还支持范围' - ' 字符。例如,要匹配所有数字的范围, 将使用模式[0-9]。如果'['后面的第一个字符 是'!',任何未包含的字符都匹配。
- “|”分隔其他模式。例如,模式字符串“abc | x *”将匹配“abc”或“x *”。
在您的情况下"[Bb]ar[Cc]ode [Ss]can*|[Bb]ar [Cc]ode [Ss]can*"
应该有效。