教科书教会我们使用Epsilon编写正则表达式 (ε) 符号,但是如何将该符号直接转换为代码,而不必完全重新制作我的正则表达式?

例如,我将如何编写此正则态度,这将捕获所有开始或结束的小写字符串 a (或两者)。

不是100%确定这是正确的...

((a |epsilon)[AZ*a)| (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 对于正确的符号,我不想修改表达式的其余部分。我也想清楚,我实际上并不是在检查epsilon符号,我想选择一个角色或什么都没有(好吧,没有……epsilon)。

这样的符号存在吗?

我想要什么吗?

有帮助吗?

解决方案

只需省略𝜖,因为它表示空字符串:

([1-9]|)[0-9]*

此特定情况也有一个快捷方式:

([1-9]?)[0-9]*

? 表示零或一次发生的代币。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top