Main Content

matlab.unittest.constraints.Matches クラス

名前空間: matlab.unittest.constraints
スーパークラス: matlab.unittest.constraints.BooleanConstraint

値が指定の正規表現に一致するかどうかをテスト

説明

matlab.unittest.constraints.Matches クラスは、値が指定の正規表現に一致するかどうかをテストするための制約を提供します。

作成

説明

c = matlab.unittest.constraints.Matches(expression) は、値が指定の正規表現に一致するかどうかをテストするための制約を作成します。この制約は、expression に一致する string スカラーまたは文字ベクトルで満たされます。

c = matlab.unittest.constraints.Matches(expression,Name,Value) は、1 つ以上の名前と値の引数を使用して追加のオプションを設定します。たとえば、c = matlab.unittest.constraints.Matches(expression,"IgnoringCase",true) は大文字と小文字を区別しない制約を作成します。

入力引数

すべて展開する

一致させる正規表現。空でない string スカラーまたは文字ベクトルとして指定します。

この引数は Expression プロパティを設定します。

名前と値の引数

引数のオプションのペアを Name1=Value1,...,NameN=ValueN として指定します。ここで Name は引数名で、Value は対応する値です。名前と値の引数は他の引数の後になければなりませんが、ペアの順序は重要ではありません。

例: c = matlab.unittest.constraints.Matches(expression,IgnoringCase=true)

R2021a より前では、コンマを使用してそれぞれの名前と値を区切り、Name を引用符で囲みます。

例: c = matlab.unittest.constraints.Matches(expression,"IgnoringCase",true)

大文字小文字の区別を無視するかどうか。数値または logical 0 (false) または 1 (true) として指定します。既定では、制約で大文字と小文字が区別されます。

この引数は IgnoreCase プロパティを設定します。

expression を一致させる回数。正の整数スカラーとして指定します。

この名前と値の引数を指定して、一致のオーバーラップしない出現のみをカウントできます。たとえば、次のテストは失敗します。

import matlab.unittest.TestCase
import matlab.unittest.constraints.Matches

testCase = TestCase.forInteractiveUse;
testCase.verifyThat("eyeye",Matches("e.e","WithCount",2))

データ型: double | single | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64

プロパティ

すべて展開する

一致させる正規表現。string スカラーまたは文字ベクトルとして返されます。

このプロパティは入力引数 expression によって設定されます。

属性:

GetAccess
public
SetAccess
immutable

大文字小文字の区別を無視するかどうか。logical 0 (false) または 1 (true) として返されます。既定では、制約で大文字と小文字が区別されます。

このプロパティは名前と値の引数 IgnoringCase によって設定されます。

属性:

GetAccess
public
SetAccess
private

すべて折りたたむ

Matches 制約を使用して、文字列が正規表現に一致するかどうかをテストします。

最初に、この例で使用するクラスをインポートします。

import matlab.unittest.TestCase
import matlab.unittest.constraints.Matches

対話型テスト用にテスト ケースを作成します。

testCase = TestCase.forInteractiveUse;

文字列 "Some Text" が正規表現 "^Som" に一致することを検証します。

testCase.verifyThat("Some Text",Matches("^Som"))
Verification passed.

大文字と小文字の区別が重要であることを示します。実際の値が小文字で始まっていないため、このテストは失敗します。

testCase.verifyThat("Some Text",Matches("^som"))
Verification failed.
    ---------------------
    Framework Diagnostic:
    ---------------------
    Matches failed.
    --> The value does not match the regular expression.
    
    Actual Value:
        "Some Text"
    Regular Expression:
        "^som"

テストにパスするように、大文字小文字の区別を無視します。

testCase.verifyThat("Some Text",Matches("^som","IgnoringCase",true))
Verification passed.

次に、別の正規表現を指定します。この表現の値 [Tt]? は、"T" または "t" がその位置で 0 回または 1 回一致することを示します。

expression = "Some[Tt]?ext";

文字列 "SomeText"expression に一致することを検証します。

testCase.verifyThat("SomeText",Matches(expression))
Verification passed.

"SomeText Sometext Someext"expression に 3 回一致するかどうかをテストします。テストはパスします。

testCase.verifyThat("SomeText Sometext Someext",Matches(expression, ...
    "WithCount",3))
Verification passed.

文字列 "sometext" が正規表現に一致しないことを検証します。

testCase.verifyThat("sometext",~Matches(expression))
Verification passed.

バージョン履歴

R2013a で導入

すべて展開する