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] |$)"