在"。"之后的Rexex Everything但忽略" |"

时间:2016-09-07 11:36:55

标签: regex

我有2种不同的文字字符串:

10.09.2016 | 45 Min. | SWR Fernsehen | UT

07.09.2016 | 57 Min. WDR Fernsehen

我希望最终得到:

SWR Fernsehen | UT 

WDR Fernsehen

这是我试图获得捕获组的原因:

\\.\s(.*)

返回:

| SWR Fernsehen | UT
WDR Fernsehen

我无法解释如何说"在"。"之后采取一切措施。但忽略" |"

任何想法?

4 个答案:

答案 0 :(得分:1)

您可以使用以下正则表达式:

.*\.(?:\s*\|)?\s*(.*)

请参阅regex demo

.*\.将匹配并包括最后一个.(因为*是一个贪婪的量词),(?:\s*\|)?将匹配0 +空格的一个或零个序列+ |\s* - 零个或多个空格,(.*)将剩下的空白用于第1组,只需使用工具/语言功能访问此组内容。

答案 1 :(得分:1)

您可以使用\.[|\s]*([^.]+)$获取最后一个点之后的所有内容,省略可能的空格和|一开始。

例如在Javascript中:

str.match(/\.[|\s]*([^.]+)$/)[1]

为您提供所需的部分。如果您不确定是否匹配,请先查看str.match(/\.[|\s]*([^.]+)$/) isn&t [t} null

答案 2 :(得分:0)

怎么样:

\b((?:SWR|WDR).+)

这会同时返回SWR Fernsehen | UTWDR Fernsehen,请参阅a demo on regex101.com

答案 3 :(得分:0)

\.(\s|\s\|\s)(.*)

或者

\.(\s(.*)|\s\|\s(.*))

相关问题