Skip to main content
 首页 » 编程设计

c#之正则表达式之正确的模式

2024年01月13日35hnrainll

我想问你如何为下面的代码制作一个模式,找到所有以字符“Z”开头并且在数字和字符“_”之后的操作,例如 Z133 .88_OP0_WELDAIR_FINISH_WALLS。 这些操作可能是这样的:

G_ZLEVEL_PROFILE_0 
ZTEST_OP0_WELDAIR_FINISH_WALLS 
Z133.88_OP0_WELDAIR_FINISH_WALLS 
Z130.88_OP0_WELDAIR_FINISH_WALLS 
Z127.88_OP0_WELDAIR_FINISH_WALLS 
Z133.88_OP1_COOLING_FINISH_WALLS 
Z130.88_OP1_COOLING_FINISH_WALLS 
Z127.88_OP1_COOLING_FINISH_WALLS 

我需要它只匹配操作

Z130.88_OP0_WELDAIR_FINISH_WALLS 
Z130.88_OP1_COOLING_FINISH_WALLS 
Z127.88_OP0_WELDAIR_FINISH_WALLS 
Z127.88_OP1_COOLING_FINISH_WALLS 
Z133.88_OP0_WELDAIR_FINISH_WALLS 
Z133.88_OP1_COOLING_FINISH_WALLS 

代码:

pattern = @"(Z\d*)"; 
 
foreach (NXOpen.CAM.Operation operation in operations) 
{ 
    Match match = Regex.Match(operation.Name, pattern); 
    if (match.Success) 
    { 
          addToCamOperationGroupList(operationName: operation.Name, folderName: match.Groups[1].Value); 
    } 
} 

请您参考如下方法:

试试这个:

pattern = @"(^Z([\d\.]*_)\S*)"; 

编辑:更新为仅从每行的开头开始匹配。测试here