2024-09-28 01:23:24 发布
网友
假设我有一个字符串数组 子字符串,字符字符(CDDDC将是模式)。例如,格式如下: H554L K007K
是否有任何快速字符串表达式匹配来查找此类事件
像这样的事情是“正则表达式”的领域。正则表达式用于模式匹配。这本身就是一个很宽泛的问题,这里要解释的太多了(请勾选regexbuddy or another site)
python在re(以及regex模块)下有一个内置的正则表达式编译器。因此,一个简单的解决办法是:
re
regex
word for word in somelist if re.search(r"[a-zA-Z]\d{3}[a-zA-Z]", word)
它在somelist上迭代,并选择与两个“范围”中的一个字符(完全)匹配的任何内容,后跟3位数字,后跟该范围中的一个字符
注释中的注释:re.search将匹配(查找)任何项目,该项目的“部分”与“模式”匹配。因此它将匹配a123b和abc b123cd。如果希望确保数组中的完整“单词”与子字符串匹配,请改用re.fullmatch。 Fullmatch将匹配a123b但不匹配abc b123cd和不匹配ab123cd
re.search
a123b
abc b123cd
re.fullmatch
ab123cd
使用以下正则表达式尝试此示例:
正则表达式:(?i)[A-Z]\d\d\d[A-Z]
import re xx = ['aeeea','5eeae','H554L','juan','K007K'] for i in xx: r1 = re.findall(r"(?i)[A-Z]\d\d\d[A-Z]", i) print (', '.join(r1) )
Run the example online
像这样的事情是“正则表达式”的领域。正则表达式用于模式匹配。这本身就是一个很宽泛的问题,这里要解释的太多了(请勾选regexbuddy or another site)
python在
re
(以及regex
模块)下有一个内置的正则表达式编译器。因此,一个简单的解决办法是:它在somelist上迭代,并选择与两个“范围”中的一个字符(完全)匹配的任何内容,后跟3位数字,后跟该范围中的一个字符
注释中的注释:
re.search
将匹配(查找)任何项目,该项目的“部分”与“模式”匹配。因此它将匹配a123b
和abc b123cd
。如果希望确保数组中的完整“单词”与子字符串匹配,请改用re.fullmatch
。Fullmatch将匹配
a123b
但不匹配abc b123cd
和不匹配ab123cd
使用以下正则表达式尝试此示例:
正则表达式:(?i)[A-Z]\d\d\d[A-Z]
Run the example online
相关问题 更多 >
编程相关推荐