Python 如何在regex语句中获得中间值?
给定一个字符串,我想通过查找前缀(常数)和后缀(可能存在也可能不存在)来获取id。以下是可能需要处理的案件:Python 如何在regex语句中获得中间值?,python,regex,Python,Regex,给定一个字符串,我想通过查找前缀(常数)和后缀(可能存在也可能不存在)来获取id。以下是可能需要处理的案件: item: item_id { item_data } 在每一种情况下,我都会试图去掉“item_id”。以下是我目前正在尝试的方法: 使用项:\s*(.*)作为regex语句,然后手动删除所有“{”和“}”。对于我上面写的第一个示例,这失败了,因为它在搜索语句中保留了item_数据 使用项:\s*(.*){作为regex语句,然后手动删除括号。对于第三个示例,如果没有表示语句结束的开
item: item_id { item_data }
在每一种情况下,我都会试图去掉“item_id”。以下是我目前正在尝试的方法:
项:\s*(.*)
作为regex语句,然后手动删除所有“{”和“}”。对于我上面写的第一个示例,这失败了,因为它在搜索语句中保留了item_数据项:\s*(.*){
作为regex语句,然后手动删除括号。对于第三个示例,如果没有表示语句结束的开始括号,则此操作失败item:\s*(*){???
使语句不贪婪,但这根本不起作用。item:\s*(\w+
说明:\w
将只匹配A-Z
、A-Z
、0-9
和
(下划线)。否则,您可以使用[^{\s]
(空格和大括号除外)代替\w
。如下:项:\s*([^{\s]+)
也考虑将<代码> \W/COD>改为<代码> \d>代码>或> <代码> []/COD> < /P>
您可以在这里检查结果:应该在示例数据中吗?我的错误-我写了错误的东西。编辑以更好地适合我的示例
项:\s*(.*)\s*{
?顺便说一句,既然您已将其标记为python,那么可能会包含您用于执行此正则表达式并使示例成为python字符串的python代码?
item: item_id {
item_data
}
item: item_id
{
item_data
}