2017-08-22 13 views
1

文字「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 

コードmatchs必要があります。

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); 
    } 
} 
+0

を検証することができ、パターン

^(Z[\d.]+\_\S*)$

の下に試してみてください – mjwills

+1

@mjwillsこれに対する答えは常に 'yes'です^ _^ – Rawling

+0

こんにちは:-)他にどのように私が上で説明したすべての操作を見つけることができましたか? :) –

答えて

4
\bZ[0-9\.]+_ 

または

\bZ[0-9\.]+_\S* 

+0

ありがとうございました。 –

+1

注 - 'SOMETHING_Z123.24_SOMETHING'と' Z123.12.123.12_SOMETHING'とも一致します –

+0

先頭に\ bを置くと – Derek

4

はこれを試してみてください(全体の名前を取得する):

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

EDIT:各行の先頭からだけ一致するように更新を。テストhere

+1

注 - 'SOMETHING_Z123.43_SOMETHING'にもマッチします –

+0

@WonkotheSaneあなたも上記のケースをカバーするために私の答えを更新しました –

3

あなたは**特別** `Regex`でそれを解決したいですか?あなたはそれをhere

+0

@WonkotheSane答えを更新しました –