0

次の値を持つ str という名前の文字列があります。PRINT "HELLO WORLD"

C# で Regex を使用して一致させようとしていますが、うまくいきません:

Regex.IsMatch(str, @"^PRINT");

ただし、 str の値が only の場合PRINT、一致します。

引用符で囲まれた後続の文字を一致させるために、正規表現で何を変更しますか?


編集:

str 値が の場合は触れられないこの条件付きブロックがありますがPRINT "Hello WOrld"、 がある場合は触れられますPRINT

if (Regex.IsMatch(str, @"^PRINT")) {
    // some codes
}

編集:

正規表現がキーワークと、スペースで区切られた引用符で囲まれた文字列のブロックを考慮する場合、PRINTそれと同等の正規表現は何ですか? これは正しいです?

@"^PRINT\w+\".*\""

正規表現で引用符を区切る方法は?

4

4 に答える 4

0

文字列strの直前に空白または非表示の文字が含まれているPRINT場合は、 falseRegex.IsMatch(str, @"^PRINT")を返します。代わりに使用してください。Regex.IsMatch(str, @"^.*PRINT")

Hello WOrld入力文字列から抽出する例:

string strInput = @" PRINT ""Hello WOrld""";
string pattern = @"^.*PRINT\s*""(?<keyword>(\s*\S+\s*)+)""";

if (Regex.IsMatch(strInput, pattern)) {
    Match m = Regex.Match(strInput, pattern);
    string extractedValue = m.Groups["keyword"].Value;
}

逐語的な文字列では、二重引用符を使用し""て単一引用符をエスケープします"

于 2013-10-12T09:45:35.810 に答える