Javascript正则表达式问题

Javascript正则表达式问题,javascript,jquery,regex,Javascript,Jquery,Regex,假设我有这个: $('ul.child').slideUp('slow'); 在上面的表达式中,正则表达式将如何查找'ul.child'和'slow'(包括引号)。试试看 /('[^']*?')/ e、 g 这是我在匆忙中能得到的最接近的了。希望这有帮助。 当我回来时,我会解决这个问题 /('[^']*?')/ e、 g 这是我在匆忙中能得到的最接近的了。希望这有帮助。 当我回来的时候,我会解决这个问题。我不知道为什么你可能会需要它,但这会解决问题 var str = "$('ul.chi

假设我有这个:

$('ul.child').slideUp('slow');
在上面的表达式中,正则表达式将如何查找
'ul.child'
'slow'
(包括引号)。

试试看

/('[^']*?')/
e、 g

这是我在匆忙中能得到的最接近的了。希望这有帮助。 当我回来时,我会解决这个问题

/('[^']*?')/
e、 g

这是我在匆忙中能得到的最接近的了。希望这有帮助。
当我回来的时候,我会解决这个问题。我不知道为什么你可能会需要它,但这会解决问题

var str = "$('ul.child').slideUp('slow');";
var matches = str.match(/\$\((.+)\)\.slideUp\((.+)\);/);
console.log(matches[1]); // 'ul.child' (with quotes)
console.log(matches[2]); // 'slow' (with quotes)

是的,
匹配
索引是正确的,
匹配[0]
包含整个匹配的部分,而索引>=1包含匹配的组

不知道为什么您可能需要它,但这就可以了

var str = "$('ul.child').slideUp('slow');";
var matches = str.match(/\$\((.+)\)\.slideUp\((.+)\);/);
console.log(matches[1]); // 'ul.child' (with quotes)
console.log(matches[2]); // 'slow' (with quotes)
是的,
匹配项
索引是正确的,
匹配项[0]
包含整个匹配部分,而索引>=1包含匹配组

这应该可以做到:

var a = "$('ul.child').slideUp('slow');";  
var matches = a.match(/'[\w.]*'/g));
// matches[0] = 'ul.child'
// matches[1] = 'slow'
g
是一个修饰符,它匹配表达式的每个匹配项

如果要匹配更多表达式,如
ul li
ul+li
ul,li
,则必须将这些附加字符放入字符类中


更新1没有帮助


更新2:

你的一个正则表达式有点小错误。更改此项:

// single quote string
the_code = the_code.replace(/('.+')/g,'<span class="code_string">$1</span>');
这应该做到:

var a = "$('ul.child').slideUp('slow');";  
var matches = a.match(/'[\w.]*'/g));
// matches[0] = 'ul.child'
// matches[1] = 'slow'
g
是一个修饰符,它匹配表达式的每个匹配项

如果要匹配更多表达式,如
ul li
ul+li
ul,li
,则必须将这些附加字符放入字符类中


更新1没有帮助


更新2:

你的一个正则表达式有点小错误。更改此项:

// single quote string
the_code = the_code.replace(/('.+')/g,'<span class="code_string">$1</span>');
我在下面的regex tester页面上执行了此操作,它找到了您的两个字符串:

您可以使用捕获组轻松获取匹配项。这句话是这样说的:

  • 任何东西都不是一个单引号,惰性匹配所有
    [^']*?
  • 捕获任何以引号开头、包含任意数量的单词字符或句点、后跟单个引号的内容。
    ('[\w\.]*')*
  • 这接近你想要的吗

    我在下面的regex tester页面上执行了此操作,它找到了您的两个字符串:

    您可以使用捕获组轻松获取匹配项。这句话是这样说的:

  • 任何东西都不是一个单引号,惰性匹配所有
    [^']*?
  • 捕获任何以引号开头、包含任意数量的单词字符或句点、后跟单个引号的内容。
    ('[\w\.]*')*


  • 这接近你想要的吗?

    你试着用正则表达式解析JavaScript代码吗?@Gumbo:是的,但我认为这不是关于任何语言,而是关于找到单引号之间的内容。你建议的正则表达式选择
    'ul.child')。slideUp('slow'
    所有这些,都不应该选择
    )。slideUp(
    part。它应该只选择单引号之间的内容。给问题一个有意义的答案title@Shermozle你是完美主义者,应该是什么标题,如果我改标题,你会考虑你的投票吗?你试着用正则表达式解析JavaScript代码吗?@ Gunb:是的,但我认为这不是关于任何语言的。是关于查找单引号之间的内容。建议的正则表达式选择
    'ul.child')。slideUp('slow'
    ),所有这些都不应选择
    )。slideUp(
    part。它应该只选择单引号之间的内容。给问题一个有意义的答案title@Shermozle你是完美主义者,应该是什么标题,如果我改标题,你会考虑你的投票吗?dot<代码> .<代码>不必在字符类中被漏掉。请看这一点:请参阅第$('ul.child')行的问题。slideUp('slow'));,它使整个表达式变红。是的,你必须把捕获组拉出来。看看这个问题的答案。他运行regex.exec,然后返回一个匹配数组。你按位置拉匹配,并测试大小,等等来获取它们。谢谢你的链接。我不太擅长regex,在链接上发布的东西对我来说很难:(点
    不必在字符类中转义。请参见:。如果预览该点,您将在第$('ul.child')行看到问题。slideUp('slow'));,它使整个表达式变红。是的,你必须把捕获组拉出来。看看这个问题的答案。他运行regex.exec,然后返回一个匹配数组。你按位置拉匹配,并测试大小,等等来获取它们。谢谢你的链接。我不太擅长regex,在链接上发布的东西对我来说很难:(它选择了
    'ul.child').slideUp('slow'
    这一切都不应该选择
    ).slideUp(
    部分如果你像我一样放括号会发生什么?请看这个:。如果你预览它,你会在$('ul.child').slideUp('slideUp')行看到问题,它会使整个表达式变成红色。它选择了
    'ul child').slideUp('slow'
    这一切都不应该选择
    ).slideUp(
    部分如果你像我一样放括号会发生什么?请看这个:。如果你预览了它,你会在$('ul.child').slideUp('slow');行看到问题,它会使整个表达式变红。我想使用类似这样的正则表达式:
    the_code=the_code.replace(/^[^']*?('[\w.]*'))*$/,'$1');
    。如何根据您的正则表达式修改代码?基本上我想替换“不匹配”。@Sarfraz:如果您能举例说明从哪个字符串开始,以及希望得到什么结果,这将非常有帮助。@Felix:请看这个:。您可以编辑写有您的名字的部分。如果您预览了它,您就会看到问题所在在
    $('ul.child').slideUp('slow');
    行,它使整个表达式变为红色。@Sarfraz:我编辑了它,我不知道它看起来是否正确,但是HTM