請考慮以下關於標識符的描述:「標識符是字母數字,但必須以小寫字母開始,並且可能不包含連續的大寫字母。 編寫接受這些標識符的DFA。正則表達式 - 不包含連續大寫字母的駱駝案例
這是我的正則表達式,我將用它來轉換爲DFA,但我不認爲它正確
[a-z].(([a-z0-9] | [a-z0-9][A-Z])* | ([a-z0-9] | [A-Z][a-z0-9])*)
請考慮以下關於標識符的描述:「標識符是字母數字,但必須以小寫字母開始,並且可能不包含連續的大寫字母。 編寫接受這些標識符的DFA。正則表達式 - 不包含連續大寫字母的駱駝案例
這是我的正則表達式,我將用它來轉換爲DFA,但我不認爲它正確
[a-z].(([a-z0-9] | [a-z0-9][A-Z])* | ([a-z0-9] | [A-Z][a-z0-9])*)
我認爲正確的正則表達式是:
^[a-z][A-Z]?(([a-z0-9][A-Z]?))*$
第一:小寫(或號碼) 結束後:無限小寫大寫?小寫大寫?小寫大寫?...
PS:如果你在正則表達式中寫一個點,它將匹配任何字符。要匹配文字.
,請使用[.]
或\.
。
這個正則表達式接受'0'作爲正確的字符串 –
true我忘記檢查數字。^[A-Z] [A-Z](([A-Z0-9] [A-Z]))* $ – idelcano
S -> [a-z] A
A -> [a-z0-9] A
A -> [A-Z] B
B -> [a-z0-9] A
的S - 開始狀態
A,B - 最終狀態
'[A-Z] [A-Z]? ([a-z0-9] + [A-Z])* [a-z0-9] *' –