假设我有一个字符串:
L1045 +++$+++ u0 +++$+++ m0 +++$+++ BIANCA +++$+++ They do not!
我需要将名称-BIANCA和末尾的文本提取为两个变量。 我试着这样做:
dialogue = "L1045 +++$+++ u0 +++$+++ m0 +++$+++ BIANCA +++$+++ They do not!"
name : str = ""
line : str = ""
name = re.findall('^L.*\s(.+?)\s.*', dialogue)
但我对使用正则表达式有点困惑。 如何使用正则表达式解决这个问题
谢谢
您可以在字符串的开头匹配
L
,并使用量词{n}
设置匹配+++$+++
的出现次数,后跟非空白字符模式匹配:
^
字符串的开头L\S*
MatchL
后跟可选的非空白字符(?: \+{3}\$\+{3} \S+){2}
使用量词,重复2次匹配分隔符,后跟1+非空白字符\+{3}\$\+{3}
匹配分隔符(\S+)
捕获组1,匹配1+非空白字符以匹配BIANCA
\+{3}\$\+{3}
匹配分隔符(.+)
捕获第2组,匹配除新行之外的任何字符的1+倍They do not!
$
字符串的结尾Regex demo
你可以不用
re
就可以做到这一点输出
您可以使用此正则表达式:
Demo
Python:
您还可以拆分和切片:
但是,如果没有找到
+++$+++
,分割和切片不会正常失败;上面的搜索模式确实如此相关问题 更多 >
编程相关推荐