2024-05-14 12:36:55 发布
网友
例如:
w for w in wordlist if re.search("..........")
假设你想要一个a在第二个位置,一个b在第五个位置,你知道它有8个字符长。你能用regex做这个吗?谢谢。你知道吗
示例输入,假设wordlist只有两个单词:[test][batpbuuu]
这个正则表达式将返回batpbuuu,因为它在第二个位置有一个a,在第五个位置有一个b。你知道吗
在正则表达式中,完全可以确保第2个字符是a,第5个字符是b。你甚至不必使用正则表达式,但我还是会展示它,因为这是你要求的。你知道吗
举个例子:
.a.{2}b
第一个点匹配任何字符(除了换行符),接下来我们只匹配一个a,然后我们匹配任何字符(除了换行符)2次,然后我们只匹配它有一个b
kallb #matches ja78b #matches ja99k #doesnt match (missing a b) jkksb #doesnt match (missing an a) kj912 #doesnt match (missing both)
Regex101:https://regex101.com/r/wR6lR3/1
你可以做:
re.search(r'^.a.{2}b.{3}$', i)
示例:
>>> w = ['test', 'batpbuuu', 'foobar', 'aachbfoo55', 'laghb678'] >>> [i for i in w if re.search(r'^.a.{2}b.{3}$', i)] ['batpbuuu', 'laghb678']
我建议使用re.match(使用'.a.{2}b.{3}')而不是re.search,这样就不会试图在字符串中间找到那些字符,但听起来根本不需要正则表达式。你知道吗
re.match
'.a.{2}b.{3}'
re.search
w for w in wordlist if len(w) == 8 and w[1] == 'a' and w[4] == 'b'
在正则表达式中,完全可以确保第2个字符是a,第5个字符是b。你甚至不必使用正则表达式,但我还是会展示它,因为这是你要求的。你知道吗
举个例子:
第一个点匹配任何字符(除了换行符),接下来我们只匹配一个a,然后我们匹配任何字符(除了换行符)2次,然后我们只匹配它有一个b
Regex101:https://regex101.com/r/wR6lR3/1
你可以做:
示例:
我建议使用
re.match
(使用'.a.{2}b.{3}'
)而不是re.search
,这样就不会试图在字符串中间找到那些字符,但听起来根本不需要正则表达式。你知道吗相关问题 更多 >
编程相关推荐