javascript - 正则表达式:查找字母后的单词,但不将该字母包含在结果中

标签 javascript regex regex-lookarounds

这是我可能拥有的字符串:

(MyStringIsOneWholeWord *)

我使用了以下 JavaScript 正则表达式来获取括号后的文本(如果它以 My 开头)。

/(^|\s|\()+My(\w+)/g,

问题在于它在结果中包含第一个括号,因为它是找到它的字母/字符。

如何去掉结果中的括号?

<小时/>

编辑

有关更多信息,我正在编辑 SHJS 语法荧光笔的 C 语言 javascript 文件。

以下是此问题的所有相关代码:

[
 /(^|\s|\()+My(\w+)/g,
 'sh_keyword',
 -1
]

最佳答案

如果这只是 JS,你可以使用捕获组:

/(^|\s|\()+(My\w+)/g

然后获取该组的比赛。然而,SHJS 似乎将使用整个匹配,需要使用 Lookbehind,而 Javascript 的 Regex 引擎不支持该功能。

<小时/>

为了解决这个问题,我建议您read the documentation 。这部分在这里:

Once you have defined the language, you must convert it to the JavaScript format used by SHJS. You will require the sh2js.pl script from a source distribution of SHJS. The sh2js.pl script is written in Perl and requires the Parse::RecDescent module.

告诉我生成的 JS 文件不应该被编辑。文档说 SHJS 使用与 GNU 源代码突出显示相同的格式,指定为 here 。所以你应该编辑原始的 .lang (link)文件,然后将它们转换为 .js

关于javascript - 正则表达式:查找字母后的单词,但不将该字母包含在结果中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3653224/

相关文章:

javascript - 如何使用 Parse Server 正确设计可靠的确认机制?

javascript - Internet Explorer 的 pushState 回退?

使用 reduce 的 Javascript 重构映射示例

ios - 用于在 Swift 中使用通配符的清晰单行单词的正则表达式

javascript - 将关键字后的字符串分组(at、after、until)忽略顺序

javascript - 表单操作期间后退按钮问题

sql-server - SQL Server 服务器中的正则表达式?

javascript - 有没有更好的方法从字符串中提取信息?

javascript - 仅当模式中不存在字符串时,正则表达式才匹配模式

正则表达式负前瞻