Regex 用于查找两个字符之间字符串的正则表达式

Regex 用于查找两个字符之间字符串的正则表达式,regex,Regex,我正在尝试创建一个正则表达式,以在以下输入中查找\和之间的字符串: \\RANDOM\APPLE\BOB\GEORGE\MIKE\TOM >>\\TEST\TEST2\TEST3\TEST\TEST\JOHN. 期望输出:TOM 我已经能够创建([^>]+)以在第一个之前隔离字符串的第一部分。我似乎不知道如何在这个问题上展开讨论并孤立汤姆。试试看 \\([^\\>]+?) >> 正则表达式 在javascript中: let regex=/\\([^\\>]+

我正在尝试创建一个正则表达式,以在以下输入中查找
\
之间的字符串:

\\RANDOM\APPLE\BOB\GEORGE\MIKE\TOM >>\\TEST\TEST2\TEST3\TEST\TEST\JOHN.
期望输出:TOM

我已经能够创建
([^>]+)
以在第一个
之前隔离字符串的第一部分。我似乎不知道如何在这个问题上展开讨论并孤立汤姆。

试试看

\\([^\\>]+?) >>
正则表达式

在javascript中:

let regex=/\\([^\\>]+?)>>/
//注意\\对于js中的文字\是必需的
让str=“\\\\RANDOM\\APPLE\\BOB\\GEORGE\\MIKE\\TOM>>\\\\\TEST\\TEST2\\TEST3\\TEST\\TEST\\TEST\\JOHN.”;
match=str.match(regex);
console.log(匹配[1])//汤姆
试试看

正则表达式

在javascript中:

let regex=/\\([^\\>]+?)>>/
//注意\\对于js中的文字\是必需的
让str=“\\\\RANDOM\\APPLE\\BOB\\GEORGE\\MIKE\\TOM>>\\\\\TEST\\TEST2\\TEST3\\TEST\\TEST\\TEST\\JOHN.”;
match=str.match(regex);
console.log(匹配[1])//汤姆
这应该可以:

[^\\\s>]+(?=\s*>)

即使所需的匹配项后面有一个或多个>并且在>之前有一个或多个空格,它也会工作

我的意思是:这个正则表达式将匹配所有字符串中的TOM:

\\RANDOM\APPLE\BOB\GEORGE\MIKE\TOM  >\\TEST\TEST2\TEST3\TEST\TEST\JOHN.
\\RANDOM\APPLE\BOB\GEORGE\MIKE\TOM  >>\\TEST\TEST2\TEST3\TEST\TEST\JOHN.
\\RANDOM\APPLE\BOB\GEORGE\MIKE\TOM>>\\TEST\TEST2\TEST3\TEST\TEST\JOHN.
这应该是有效的:

[^\\\s>]+(?=\s*>)

即使所需的匹配项后面有一个或多个>并且在>之前有一个或多个空格,它也会工作

我的意思是:这个正则表达式将匹配所有字符串中的TOM:

\\RANDOM\APPLE\BOB\GEORGE\MIKE\TOM  >\\TEST\TEST2\TEST3\TEST\TEST\JOHN.
\\RANDOM\APPLE\BOB\GEORGE\MIKE\TOM  >>\\TEST\TEST2\TEST3\TEST\TEST\JOHN.
\\RANDOM\APPLE\BOB\GEORGE\MIKE\TOM>>\\TEST\TEST2\TEST3\TEST\TEST\JOHN.

Try
[^\\>]+(?=\s>>)
可能重复,请参阅不同语言的正则表达式引擎具有不同的功能。您可以添加标签或编辑您的问题以指定您使用的语言。谢谢@WiktorStribiżew,您的解决方案有效。您需要在
lookahead
lookahead断言上进行web搜索。它们在这种情况下非常有用。Try
[^\\>]+(?=\s>>)
的可能重复,请参阅不同语言的正则表达式引擎具有不同的功能。您可以添加标签或编辑您的问题以指定您使用的语言。谢谢@WiktorStribiżew,您的解决方案有效。您需要在
lookahead
lookahead断言上进行web搜索。在这种情况下,它们非常有用。