什么正则表达式可以匹配一串字母“U”和字母“O”,其中最多一对 (U, O) 或 (O, U) 彼此相邻?

问题描述 投票:0回答:1

什么正则表达式可以匹配一串字母

U
O
,以便最多有一个字母
U
与字母
O
相邻?

我们希望匹配文本字符串,例如

OOOOUUUU
UUUUOOO

但是,

U
O
不应彼此接触太多,如
OUOUUUOOO

所示
字符串 IS_MATCH
空字符串
U
是的
O
是的
UUUU
是的
OOOO
是的
OU
是的
UO
,
是的
UUUOOOO
是的
OOOOUUU
是的
OOOUUUUOOUOU
OUUUOOOUUUO
OUOUOUOUOUOUOU

字母

O
U
应连续出现,最多出现一次。


假设 AS 是字符串文字的集合,对于集合 AS 中的任何字符串 A,我们理想的正则表达式 R 与字符串文字 A 匹配。

AS = {"U", "O", "OU", "UO", "UOO", "OOU", "UUO", "OOU", ...}

A 为集合 AS 中的字符串。

因此,如果

UO
是字符串 A 的子序列,那么
OU
NOT 字符串 A 的子序列。

此外,如果

OU
是字符串 A 的子序列,则
UO
NOT 字符串 A 的子序列。


regex regular-language
1个回答
0
投票

交替使用 O 和 U,反之亦然:

O+U*|U+O*
© www.soinside.com 2019 - 2024. All rights reserved.