首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >正则表达式从字符串中查找和移除子字符串或其变体。

正则表达式从字符串中查找和移除子字符串或其变体。
EN

Stack Overflow用户
提问于 2019-05-02 10:26:45
回答 2查看 72关注 0票数 1

我有一个类型的文本:

  • “选定的选择值:选项1、选项2或选项3”
  • 选择值:选项1,选项2,或选项3
  • “选择值选择=选项1,或选项2,或选项3”

我需要提取:=之后的所有内容

我试过这样做:

代码语言:javascript
运行
复制
import regex as re
r = re.compile(r'Choice(.+?)selected')
r.split(str)

我不知道如何捕捉:=

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2019-05-02 10:32:18

您不需要使用regex,只需使用re.split:=上拆分

代码语言:javascript
运行
复制
li = ["Choice values selected: Option 1, or Option 2, or Option 3", "Choice value selected: Option 1, or Option 2, or Option 3",
      "Choice value selected = Option 1 , or Option 2, or Option 3"]

import re
for item in li:
    #Split on : and =, get the last element from list and strip it
    print(re.split(':|=',item)[1].strip())

输出将是

代码语言:javascript
运行
复制
Option 1, or Option 2, or Option 3
Option 1, or Option 2, or Option 3
Option 1 , or Option 2, or Option 3
票数 4
EN

Stack Overflow用户

发布于 2019-05-02 10:28:39

你可以用这个正则表达式,

代码语言:javascript
运行
复制
[:=]\s*(.*)

并从group1中获取您的价值

此正则表达式从捕获:=开始,然后选择\s*匹配可选空间,然后(.*)捕获行中的其余文本并在group1中捕获。

Regex Demo

Python代码,

代码语言:javascript
运行
复制
import regex as re

arr = ['Choice values selected: Option 1, or Option 2, or Option 3','Choice value selected: Option 1, or Option 2, or Option 3','Choice value selected = Option 1 , or Option 2, or Option 3']

for s in arr:
 m = re.search(r'[:=]\s*(.*)', s)
 if m:
  print(s, '-->', m.group(1))

产出,

代码语言:javascript
运行
复制
Choice values selected: Option 1, or Option 2, or Option 3 --> Option 1, or Option 2, or Option 3
Choice value selected: Option 1, or Option 2, or Option 3 --> Option 1, or Option 2, or Option 3
Choice value selected = Option 1 , or Option 2, or Option 3 --> Option 1 , or Option 2, or Option 3

此外,如果您想使用re.split,则可以使用[=:] regex将其拆分,该正则表达式表示=:

代码语言:javascript
运行
复制
import regex as re
arr = ['Choice values selected: Option 1, or Option 2, or Option 3','Choice value selected: Option 1, or Option 2, or Option 3','Choice value selected = Option 1 , or Option 2, or Option 3']

for s in arr:
 r = re.compile(r'[:=]')
 print(r.split(s)[1])

产出,

代码语言:javascript
运行
复制
 Option 1, or Option 2, or Option 3
 Option 1, or Option 2, or Option 3
 Option 1 , or Option 2, or Option 3
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55950415

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档