代码之家  ›  专栏  ›  技术社区  ›  Joshua

正则表达式:在字母后查找单词,但不要在结果中包含字母

  •  0
  • Joshua  · 技术社区  · 15 年前

    (MyStringIsOneWholeWord *)
    

    我使用了下面的javascript正则表达式来获取括号后面的文本,如果它以 My

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

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

    我怎样才能去掉结果中的括号呢?


    编辑

    有关更多信息,我正在编辑 C Language

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

    [
     /(^|\s|\()+My(\w+)/g,
     'sh_keyword',
     -1
    ]
    
    3 回复  |  直到 15 年前
        1
  •  2
  •   NullUserException Mark Roddy    15 年前

    如果这是 JS您可以使用捕获组:

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


    为了避开这个,我建议你 read the documentation

    一旦你定义了语言, SHJS使用的格式。你需要 SHJ的分布。sh2js.pl公司 脚本是用Perl编写的,需要

    告诉我生成的JS文件不需要编辑。文档说SHJS使用与GNU源高亮显示相同的格式,这是指定的 here . 所以你应该编辑原稿 .lang (link) .js .

        2
  •  1
  •   cNovak    13 年前

    你想要的是 肯定后向断言 . 不幸的是,Javascript不支持它们。然而,Steven Levithan在博客中对此进行了阐述: http://blog.stevenlevithan.com/archives/mimic-lookbehind-javascript

    编辑:同一作者更新文章: http://blog.stevenlevithan.com/archives/javascript-regex-lookbehind

        3
  •  0
  •   Toto    15 年前

    我不明白你到底想拍什么,但你可以试试这些:

    捕获 StringIsOneWholeWord

    /(?:^|\s|\()+My(\w+).*\)/
    

    捕获 MyStringIsOneWholeWord

    /(?:^|\s|\()+(My\w+).*\)/
    

    捕获 MyStringIsOneWholeWord * 1美元:

    /(?:^|\s|\()+(My\w+.*)\)/
    

    捕获 StringIsOneWholeWord * 1美元:

    /(?:^|\s|\()+My(\w+.*)\)/
    
    推荐文章