質問
テキストブックは、イプシロンを使用して正規表現を書くことを教えてくれます (ε)
シンボルですが、正規表現を完全に作り直すことなく、そのシンボルをコードに直接翻訳するにはどうすればよいですか?
たとえば、で開始または終了するすべての小文字の文字列をキャッチするこの正規表現をどのように書くことができますか a
(または両方)。
これが正しいと確信していませんが...
((a |epsilon
)[AZ*
a)| ([AZ*
(A |epsilon
))
したがって、一致すべき文字列には次のものがあります。
a //single "a" starts or ends with "a"
aa //starts and ends with "a"
ab //starts with "a"
ba //ends with "a"
aba //starts and ends with "a"
aaaaaaaa //starts and ends with "a"
abbbbbbb //starts with "a"
bbbbbbba //ends with "a"
abbbbbba //starts and ends with "a"
asdfhgdu //starts with "a"
onoineca //ends with "a"
ahnrtyna //starts and ends with "a"
私は何を交換するかだけです epsilon
正しいシンボルについては、式の残りの部分の一部を変更したくありません。また、私は明確になりたいです、私は実際にイプシロンのシンボルをチェックしていません、私はキャラクターを選択するか、何もありません(まあ、何も...エプシロン)。
そのようなシンボルは存在しますか?
私が望んでいることは何ですか?
解決
空の文字列を示すので、𝜖を省略します。
([1-9]|)[0-9]*
この特定のケースのショートカットもあります。
([1-9]?)[0-9]*
?
前のトークンのゼロまたは1つの発生を意味します。
所属していません StackOverflow