RegEx для исключения группы захвата - PullRequest
2 голосов
/ 14 мая 2019

Я несколько часов пытался придумать для этого регулярное выражение, но не смог.

Вот строка, которую я ищу. Мне нужно извлечь только часть [Name] Action Detail.

2019-05-14 11:28:08,257 [tomcat-http--12] INFO  com.my.org.SomeClass  - Usage Event: ,SomeField=null,SomeOtherField=Some value,Action=[Name] Action Detail,OtherField=null

Это регулярное выражение дает мне почти , что мне нужно: Action=\[[^,]+. Однако мне нужно исключить часть Action=. Я думаю, что для этого мне нужно использовать вложенную подгруппу?

1 Ответ

3 голосов
/ 14 мая 2019

Вы можете просто добавить группу захвата вокруг Action =, и это будет сделано так:

(Action=)\[[^,]+

Вы также можете расширить его с помощью другой группы захвата вокруг желаемого выхода, чтобы просто извлечь это:

(Action=)(\[[^,]+)

enter image description here

RegEx

Вы можете создавать / изменять / изменять выражения в regex101.com .

RegEx Circuit

Вы можете визуализировать свои выражения в jex.im :

enter image description here

JavaScript Demo

const regex = /(Action=)(\[[^,]+)/gm;
const str = `2019-05-14 11:28:08,257 [tomcat-http--12] INFO  com.my.org.SomeClass  - Usage Event: ,SomeField=null,SomeOtherField=Some value,Action=[Name] Action Detail,OtherField=null`;
const subst = `$2`;

// The substituted value will be contained in the result variable
const result = str.replace(regex, subst);

console.log('Substitution result: ', result);
...