Regex 与字符串匹配的正则表达式
我需要一个只匹配字符串“MachineABC”和“MachineABCTest”的正则表达式 我试过这样的表达:MachineABC[“Test”]*。但它并没有像预期的那样工作。对于这种情况,什么是正确的正则表达式 我在用grep工具进行测试。例如:echo“MachineABCTest”| grep“MachineABC[“Test”]+”。 示例grep返回null。正则表达式应该是:Regex 与字符串匹配的正则表达式,regex,grep,Regex,Grep,我需要一个只匹配字符串“MachineABC”和“MachineABCTest”的正则表达式 我试过这样的表达:MachineABC[“Test”]*。但它并没有像预期的那样工作。对于这种情况,什么是正确的正则表达式 我在用grep工具进行测试。例如:echo“MachineABCTest”| grep“MachineABC[“Test”]+”。 示例grep返回null。正则表达式应该是: ^MachineABC(Test)?$ 如果要使任何零件成为可选零件,只需将其与?通知程序组合,使其成
^MachineABC(Test)?$
如果要使任何零件成为可选零件,只需将其与?
通知程序组合,使其成为可选零件(1或0个匹配项)
使用egrep进行测试:
echo "MachineABCTest" | egrep '^MachineABC(Test)?$'
MachineABCTest
echo "MachineABC" | egrep '^MachineABC(Test)?$'
MachineABC
是
^
是行开始,$
是行结束锚。请解释为什么从结尾删除“$”会导致表达式与“MachineAbest”匹配?“?”操作员是否对可选部件负责?在哪个示例中,您希望删除$
(示例1或2?(测试)?
这意味着0
或1
命中测试
,因此,删除$
将在MachineABC
egrep匹配该行并在找到匹配项时打印该行后使任何ting工作。使用$
的一个更好的例子是:echo“MachineABC123”| egrp-o'^MachineABC(Test)?$”
无法匹配,但在这里echo“MachineABC123”| egrp-o'^MachineABC(Test)?
将使匹配成功。