正则表达式需要 - String1 String2 | String3 String4

时间:2014-10-03 09:28:43

标签: regex

我在使用regexp时遇到了一些麻烦...

我已经尝试了一些使用正则表达式生成器的网站,但没有人帮助过我......所以......我在这里......

我需要一个正则表达式,只能抓住管道前的前两个字符串......

所以基本上我只想留下来:

INPUT:String_1 String_2 | String_3 String_4

OUTPUT:String_1 String_2

这个人抓住所有单词..([A-Z])\ w +我只需要管道前的信息...:'(

全部谢谢!

4 个答案:

答案 0 :(得分:1)

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

^([A-Z]\w* +[A-Z]\w*)(?= *\|)

RegEx Demo

答案 1 :(得分:0)

只需你可以这样做,

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

答案 2 :(得分:0)

你可以使用非贪婪的正则表达式来做到非常简洁:

([\S\s]+?)\|

将获取管道前的所有内容

答案 3 :(得分:0)

我会对管道进行拆分,但是如果你真的想要一个正则表达式:

^([^|]+)

这将捕获(在第1组中)从字符串开头不是管道的所有内容。

如果你想捕获两组:

^([^|]+) | (.*)$

举个例子,

String_1 String_2将在第1组中,String_3 String_4将在第2组中。

实施取决于您使用的语言 例如,在PHP中:

$str = 'String_1 String_2 | String_3 String_4';
preg_match('/^([^|]+) | (.*)$/', $str, $match);
//$match[1] : String_1 String_2
//$match[2] : String_3 String_4