Javascript正则表达式获取word,但从注释块中排除

Javascript正则表达式获取word,但从注释块中排除,javascript,regex,Javascript,Regex,假设我在一个文件中有以下内容 <button aria-label="<?php echo JText::_('JCANCEL'); ?>"> // JText /** * Comment block * ------------------ * @param JText * */ 对于/**、*/和//来说,这看起来确实是正面的,但是在测试时,它会返回所有内容,包括JText: <button aria-label="<?php echo

假设我在一个文件中有以下内容

<button aria-label="<?php echo JText::_('JCANCEL'); ?>">

// JText

/**
 * Comment block
 * ------------------
 * @param   JText
 *
 */
对于
/**
*/
//
来说,这看起来确实是正面的,但是在测试时,它会返回所有内容,包括JText:

<button aria-label="<?php echo JText

关于解析器,这是一个很好的观点,但如果您愿意冒险,只需将文本作为一个组:

^\s*(?=\S)(?!\/\*\*)(?!\/\/)(?!\*).*(\\?)(JText)

您需要一个语法分析器。假设您有
var s=“bad string/*here”[0]
元素始终是完整匹配,它包含了
JText
之前的所有内容,因此您需要添加一些捕获组来澄清匹配。谢谢Andrew。您的代码几乎就在这里,但是
JText
之前的可选反斜杠未包含在匹配中。最后,将
*
替换为
(.*)
^\s*(?=\S)(?!\/\*\*)(?!\/\/)(?!\*).*(\\?)(JText)