Python 匹配特定模式的正则表达式

Python 匹配特定模式的正则表达式,python,regex,Python,Regex,我有以下字符串: s = "<X> First <Y> Second" 我试过这个: pattern = r'([XxYy]) ([^\<]+)' >>> [('X', ' First Y Second')] 编辑2: pattern = r'([XxYy]) ([^ ]+)' s = "X First text Y Second" 产生: [('X', 'First'), ('Y', 'Second')] 但它应该是: >>

我有以下字符串:

s = "<X> First <Y> Second"
我试过这个:

pattern = r'([XxYy]) ([^\<]+)'
>>> [('X', ' First Y Second')]
编辑2:

pattern = r'([XxYy]) ([^ ]+)'
s = "X First text Y Second"
产生:

[('X', 'First'), ('Y', 'Second')]
但它应该是:

 >>> [('X', ' First one '), ('Y', ' Second '), ('X', ' More '), ('Y', ' Text')]
[('X', 'First text'), ('Y', 'Second')]

如果知道要匹配的空白字符,可以将其添加到表达式中。 如果要匹配任何空格,可以使用\s

pattern = r'\<([XxYy])\>([^\<]+)'

pattern=r'\([^\如果您知道要匹配哪个空格字符,可以将其添加到表达式中。
如果要匹配任何空格,可以使用\s

pattern = r'\<([XxYy])\>([^\<]+)'

pattern=r'\([^\假设要匹配的空白标记是单个空格字符,则模式为:

pattern = r'([XxYy]) ([^ ]+)'

假设要匹配的空白标记是单个空格字符,则模式为:

pattern = r'([XxYy]) ([^ ]+)'

比如:
怎么样:
我想出了这个解决方案:

pattern = r"([XxYy]) (.*?)(?= [XxYy] |$)"

所以我提出了这个解决方案:

pattern = r"([XxYy]) (.*?)(?= [XxYy] |$)"

如何定义尾随边界的位置?顺便说一句,看看。如何定义尾随边界的位置?顺便说一句,看看。对于
s=“X First text Y Second”
它会产生
[('X','First'),('Y','Second')]
,但对于
s=“X First text Y Second”,它应该是
[('X','First text'),('Y','Second')]
它产生
[('X','First'),('Y','Second')]
但它应该是
[('X','First text'),('Y','Second')]
使用短字符串就可以了。如果您有很长的字符串,您应该使用。也许,空格最好替换为
\s
。使用短字符串就可以了。如果您有很长的字符串,您应该使用。也许,空格最好替换为
\s
pattern = r"([XxYy]) (.*?)(?= [XxYy] |$)"