正则表达式帮助 - 定义正则表达式

时间:2012-10-21 02:53:03

标签: regex

我刚才有一个关于正则表达式的问题......我真的不知道如此感谢任何帮助。

问题是:定义一个正则表达式,该正则表达式表征由a和b的所有字符串组成的语言,其中第二个和第二个字符为'b'。

关于如何开始提问的任何想法?

非常感谢

3 个答案:

答案 0 :(得分:1)

假设你/这个问题意味着什么

  

仅包含'a'和'b'的字符串,第2个和第2个最后一个字符为'b'。

这可能适用于大多数正则表达式(可能需要将其括在/ /

^[ab]b[ab]*b[ab]$

答案 1 :(得分:1)

要解决此问题,您需要:

  1. 找到以ab开头的字符串:^(a|b)
  2. b作为第二个字符`^(a | b)b
  3. 之后是一串a s,b或两者:^(a|b)b[a-b]*
  4. 还有另一个b^(a|b)[a-b]*b
  5. 以另一个ab^(a|b)b[a-b]*b(a|b)$
  6. 结束
  7. 然后您需要针对该正则表达式测试您的字符串:/^(a|b)b[a-b]*b(a|b)$/.test(string)
  8. 使用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');
            }
        });​​​
    

    JS Fiddle demo

    参考文献:

答案 2 :(得分:0)

您所谈论的是来自formal language theory正则表达式。我们在这里讨论的 regexes 是一个正则表达式的混合分支,它不仅仅是识别常规语言。如果你刚刚开始研究“理论纯粹的”正则表达式,你现在应该远离正则表达式。