这是我可能拥有的字符串:
(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/