/ / Regex necessário - String1 String2 | String3 String4 - regex

Regex necessário - String1 String2 | String3 String4 - regex

Estou tendo problemas com regexps ...

Eu experimentei alguns sites com geradores regexp, mas nenhum me ajudou ... então ... aqui estou ...

Eu preciso de um regexp que agarre apenas as 2 primeiras cordas antes do pipe ...

Então, basicamente, eu só quero ficar com:

ENTRADA: String_1 String_2 | String_3 String_4

SAÍDA: String_1 String_2

Este pega todas as palavras .. ([A-Z]) w + e eu só preciso das informações antes do canal ...: "(

Obrigado a todos!

Respostas:

1 para resposta № 1

Você pode usar este regex:

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

RegEx Demo


0 para resposta № 2

Simplesmente você poderia fazer assim,

.*?(?=s*|)

0 para resposta № 3

Você pode usar o Regex não ganancioso para fazer isso de forma bem sucinta:

([Ss]+?)|

Vai pegar tudo antes do cano


0 para a resposta № 4

Eu faria uma divisão no pipe, mas se você realmente quiser uma regex:

^([^|]+)

Isso capturará (no grupo 1) tudo o que não é um cano desde o início da string.

Se você deseja capturar os 2 grupos:

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

Com o seu exemplo,

String_1 String_2 estará no grupo 1 e String_3 String_4 no grupo 2.

A implementação depende do idioma que você está usando.
Por exemplo, no 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