我对RegEx只有粗略的理解,我很难过!
我的文件格式如下:
>>
www.google.com some stuff I don't want
www.yahoo.com
<<section>>
www.bing.com
www.yahoo.com
<<section>>
www.bing.com
https://github.com/zeeshanu/learn-regex
以下是我希望匹配的条件:
我已经能够使这个正则表达式选择我想要的那一行:
^([^>>]\s*\S*){1}
但是我不能让它在正确的字符串中工作。
答案 0 :(得分:2)
您可以使用
(?:\G(?!\A).*\R\h*|^>>\s*)\K\S+
请参阅regex demo。您很可能希望通过i
修饰符以不区分大小写的方式匹配模式。
<强>详情
(?:\G(?!\A).*\R\h*|^>>\s*)
- 匹配上一个匹配(\G(?!\A)
)的结尾,然后匹配换行符以外的任何0 +字符,尽可能多(.*
),然后一行在行的开头打破(\R
)然后任何0+水平空格(\h*
)或|
)>>
子串,然后是0 +空格( \s*
)\K
- 省略目前为止匹配的文字\S+
- 匹配并返回除空白之外的一个或多个字符。