我只是对正则表达式有疑问......我真的不知道所以任何形式的帮助表示赞赏。
问题是:定义一个正则表达式,该表达式表征由所有字符串 a 和 b 组成的语言,其中第二个和第二个字符是“b”。
关于如何开始这个问题的任何想法?
非常感谢
我只是对正则表达式有疑问......我真的不知道所以任何形式的帮助表示赞赏。
问题是:定义一个正则表达式,该表达式表征由所有字符串 a 和 b 组成的语言,其中第二个和第二个字符是“b”。
关于如何开始这个问题的任何想法?
非常感谢
假设你/问题的意思是
仅由 'a's 和 'b's 组成的字符串,第 2 和 2nd-Last 个字符是 'b'。
这可能适用于大多数正则表达式风格(可能需要将其包含在 中/ /
)
^[ab]b[ab]*b[ab]$
要解决此问题,您需要:
a
查找以or开头的字符串b
: ^(a|b)
,b
作为第二个字符 `^(a|b)ba
s、b
s 或两者:^(a|b)b[a-b]*
b
:^(a|b)[a-b]*b
a
or结尾b
:^(a|b)b[a-b]*b(a|b)$
/^(a|b)b[a-b]*b(a|b)$/.test(string)
使用 jQuery 和 JavaScript 的概念证明:
$('li').each(
function(i,el) {
var text = $(el).text();
if (/^((a|b)b[a-b]*b(a|b))$/.test(text)) {
$(el).addClass('matched');
}
});
参考:
您在谈论的是来自形式语言理论的正则表达式。我们在这里讨论的正则表达式是正则表达式的一个混蛋分支,它的作用远不止识别正则语言。如果您刚刚开始学习“纯理论”正则表达式,那么您现在可能应该远离正则表达式。