我需要为一种正则语言编写一个正则表达式,它的字符串总是以 1 开头并且有偶数个 0。
我已经在 Java 中尝试过 ^1+(00)+(1|00)* ,它确实接受像 100, 100100 , 10011001.. 这样的字符串,但是它不接受 10101010 而 0 的数量是偶数。请有更好的想法来定义正则表达式的人吗?
我需要为一种正则语言编写一个正则表达式,它的字符串总是以 1 开头并且有偶数个 0。
我已经在 Java 中尝试过 ^1+(00)+(1|00)* ,它确实接受像 100, 100100 , 10011001.. 这样的字符串,但是它不接受 10101010 而 0 的数量是偶数。请有更好的想法来定义正则表达式的人吗?
尝试这个:
"^1+(01*01*)*$"
根据您尝试的正则表达式,我假设只允许 0 和 1。如果要允许其他字符:
"^1[^0]*(0[^0]*0[^0]*)*$"
I need to write a regular expression for a regular language which its strings always start with 1 and have even number of 0s.
这个基于前瞻的正则表达式应该适合你:
/^1(?=(([^0]*0){2})*[^0]*$)/
/^1(?=(([^0]*0){2})*[^0]*$)/.test('10'); // false
/^1(?=(([^0]*0){2})*[^0]*$)/.test('1000000'); // true
/^1(?=(([^0]*0){2})*[^0]*$)/.test('000000'); // false