0

我正在使用 pyGithib 库查看 github 存储库中所有以 *.rb 结尾的文件的内容,使用该库我得到一个这种格式的字符串

desc  'heading \'Test this too\')
                 Rationale: Best Practice
                 this line is also included in description '

config 'xxx' do

          title 'this is a dummy title \'Test this too\' for this block'
          desc  'Demo (test this) description \'Test this too\')
                 Rationale: Best Practice
                 this line is also included in description '
          
          tag benchmark: 'xyz:11'
          tag level: 1
          tag version: '0.0.1'
          tag reference: 'version 2.4'
          tag resource_type: 'A'

使用正则表达式,我如何获得在多行之后desc以及versionconfig块之后包含的字符串的值

4

1 回答 1

1

您可以使用匹配器执行此操作,如以下问题所示:How to extract a substring using regex

您必须用正确的正则表达式替换正则表达式。

要获取正则表达式,您可以使用https://regexr.com/等网站,让您轻松测试与您的正则表达式匹配的内容。

在这种情况下,这样的事情应该起作用:

String mydata = """config 'xxx' do

      title 'this is a dummy title \'Test this too\' for this block'
      desc  'Demo (test this) description \'Test this too\')
             Rationale: Best Practice
             this line is also included in description '
      
      tag benchmark: 'xyz:11'
      tag level: 1
      tag version: '0.0.1'
      tag reference: 'version 2.4'
      tag resource_type: 'A'""";
Pattern desc_pattern = Pattern.compile("desc  '(.|\n)*'\n\s*\n");
Matcher desc_matcher = desc_pattern.matcher(mydata);

desc = desc_matcher.find()

Pattern version_pattern = Pattern.compile("tag version: '.*'");
Matcher version_matcher = version_pattern.matcher(mydata);

version = version_matcher.find()

然后你可以剪掉前几个字符来得到你想要的字符串。

于 2020-07-06T20:50:54.980 回答