gpt4 book ai didi

python - 匹配特定模式的正则表达式

转载 作者:太空宇宙 更新时间:2023-11-04 10:07:44 25 4
gpt4 key购买 nike

我有以下字符串:

s = "<X> First <Y> Second"

而且我可以匹配 <X> 之后的任何文本和 <Y> (在本例中为“第一”和“第二”)。我已经这样做了:

import re
s = "<X> First <Y> Second"
pattern = r'\<([XxYy])\>([^\<]+)' # lower and upper case X/Y will be matched
items = re.findall(pattern, s)
print items
>>> [('X', ' First '), ('Y', ' Second')]

我现在尝试匹配的是没有 <> 的情况:

s = "X First Y Second"

我试过这个:

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

不幸的是,它没有产生正确的结果。我究竟做错了什么?我想匹配 X 或 x 或 Y 或 y 加上一个空格(例如“X”)。我该怎么做?

编辑:这也是一个可能的字符串:

s = "<X> First one <Y> Second <X> More <Y> Text"

输出应该是:

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

编辑2:

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

产生:

[('X', 'First'), ('Y', 'Second')]

但它应该是:

[('X', 'First text'), ('Y', 'Second')]

最佳答案

怎么样:<?[XY]>? ([^<>XY$ ]+)

javascript 中的示例:

const re = /<?[XY]>? ([^<>XY$ ]+)/ig

console.info('<X> First <Y> Second'.match(re))
console.info('X First Y Second'.match(re))

关于python - 匹配特定模式的正则表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40024643/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com