题
教科书教会我们使用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]*
这 ?
表示零或一次发生的代币。
不隶属于 StackOverflow