REGEX - 如何在连续的行上选择/标记3个由制表符分隔的作品?

时间:2016-12-31 21:22:14

标签: regex regex-greedy

新年快乐!

我有问题。我不知道如何标记\选择连续行上的标签分隔的一些单词:Recent,Coments and Tags

请看这个打印屏幕:

https://snag.gy/ZXNxJR.jpg

我可以很容易地添加|符号,例如:Recent|Comments|Tags但是这会选择重复文件中的所有单词,而我只希望那些行中的那些单词。

我想要的是制作正则表达式,删除这3个单词之前的所有文本,以及另一个正则表达式来删除这3个单词之后的所有内容。

我尝试这样的((?s)((^.*)^.*Recente.*$|^.*Coments.*$|^.*Tags.*^))(.*$),但不是很好。而且我必须要注意,因为这些单词可以在文本文件中重复,所以我必须选择\标记那3个,在那3个连续的行上(没有任何其他单词)

2 个答案:

答案 0 :(得分:1)

由于您在评论中提到要在 Notepad ++ (事实应该在问题文本中提及)中执行此操作,并且由于屏幕截图显示在前两个单词之后的单个空格中,您可以尝试使用此正则表达式:

.*\n([ \t]+Recente\s+Coments\s+Tags).*

它将选择所有内容,但捕获3个单词,包括它们之间的空格和同一行上第一个单词之前的空格。

如果您随后替换为$1,则不会删除捕获组中的所有内容。

enter image description here

实际上,前两个单词之后的空格与此正则表达式无关。

答案 1 :(得分:0)

请你在perl中试试这个:

<div class="tab-content">
    @if ($members->count() > 0)
        @foreach ($members as $key => $member)
        <div role="tabpanel" class="tab-pane @if($members->first() == $member)active@endif" id="{{ $member->username }}">
            <div class="col-md-12">
                <h1>{{ $member->username }}</h1>
                <br>
                <p>Personal Website: <a href="{{ $member->personal_website }}">{{ $member->personal_website }}</a></p>
                <p>Last Login: 1st January, 2017</p>
            </div>
        </div>
        @endforeach
    @endif
</div>

细分:

  • 从1个或多个制表符(第一个捕获组)开始
  • 然后是“最近”,接着是新行
  • 捕获组,评论和新行
  • 捕获组,标记

顺便说一下,“tab”真的是tab还是多个连续的空格(\ s +)?