REGEX - 如何 select/mark 3 个作品在连续的行上用制表符分隔?
REGEX - How can I select/mark 3 works delimited by tabs on a consecutive lines?
新年快乐!
我有问题。我不知道如何 marks\select 一些用制表符分隔的连续行的单词:最近、评论和标签
请查看此打印屏幕:
我可以很容易地放置 |
符号,例如:Recent|Comments|Tags
但这将 select 文件中的所有单词重复,我只想要那些行上的那 3 个.
我想要的是制作一个正则表达式,删除这 3 个词之前的所有文本,以及另一个正则表达式以删除这 3 个词之后的所有内容。
我尝试过这样的方法 ((?s)((^.*)^.*Recente.*$|^.*Coments.*$|^.*Tags.*^))(.*$)
但不是很好。而且我必须注意,因为这些词可以在文本文件中重复,所以我必须 select\mark 正是那 3 个连续的行(上面没有任何其他词)
你能在 perl 中试试这个吗:
perl -0777 -ne 'while(m/((\s|\t)+)Recent\nComments\nTags/g){print "$&\n";}' /path/to/file
细分:
- 以 1 个或多个制表符开头(第一个捕获组)
- 然后 "Recent" 后跟新行
- 捕获组、评论和换行
- 捕获组,标签
顺便问一下,"tab"真的是制表符还是多个连续的空格(\s+)?
因为你在评论中提到你想在 Notepad++ (问题文本中应该提到的事实),并且由于屏幕截图在前两个单词后显示了一个 space,您可以试试这个正则表达式:
.*\n([ \t]+Recente\s+Coments\s+Tags).*
它会 select 一切,但捕获 3 个单词,包括它们之间的 whitespace 和同一行第一个单词之前的 whitespace。
如果您随后替换为
,则不在捕获组中的所有内容都将被删除。
实际上,前两个单词后的 space 对这个正则表达式无关紧要。
新年快乐!
我有问题。我不知道如何 marks\select 一些用制表符分隔的连续行的单词:最近、评论和标签
请查看此打印屏幕:
我可以很容易地放置 |
符号,例如:Recent|Comments|Tags
但这将 select 文件中的所有单词重复,我只想要那些行上的那 3 个.
我想要的是制作一个正则表达式,删除这 3 个词之前的所有文本,以及另一个正则表达式以删除这 3 个词之后的所有内容。
我尝试过这样的方法 ((?s)((^.*)^.*Recente.*$|^.*Coments.*$|^.*Tags.*^))(.*$)
但不是很好。而且我必须注意,因为这些词可以在文本文件中重复,所以我必须 select\mark 正是那 3 个连续的行(上面没有任何其他词)
你能在 perl 中试试这个吗:
perl -0777 -ne 'while(m/((\s|\t)+)Recent\nComments\nTags/g){print "$&\n";}' /path/to/file
细分:
- 以 1 个或多个制表符开头(第一个捕获组)
- 然后 "Recent" 后跟新行
- 捕获组、评论和换行
- 捕获组,标签
顺便问一下,"tab"真的是制表符还是多个连续的空格(\s+)?
因为你在评论中提到你想在 Notepad++ (问题文本中应该提到的事实),并且由于屏幕截图在前两个单词后显示了一个 space,您可以试试这个正则表达式:
.*\n([ \t]+Recente\s+Coments\s+Tags).*
它会 select 一切,但捕获 3 个单词,包括它们之间的 whitespace 和同一行第一个单词之前的 whitespace。
如果您随后替换为 ,则不在捕获组中的所有内容都将被删除。
实际上,前两个单词后的 space 对这个正则表达式无关紧要。