我有一个字符串,看起来像以下三个示例之一:
1: Name = astring Some comments
2: Typ = one two thee Must be "sand", "mud" or "bedload"
3: RDW = 0.02 [ - ] Some comment about RDW
我首先拆分变量名,然后如下所示:
re.findall(r'\s*([a-zA-z0-9_]+)\s*=\s*(.*)', line)
然后,我想将字符串的右侧部分拆分为包含值的部分和包含注释的部分(如果有的话)。我想通过查看空格的数量来实现这一点。如果它超过了4,那么我假设评论开始了
你知道怎么做吗?你知道吗
我现在有
re.findall(r'(?:(\S+)\s{0,3})+', dataString)
但是,如果我使用字符串来测试它:
'aa aa23r234rf2134213^$&$%& bb'
然后它还选择“bb”
可以将单个正则表达式与
re.findall
一起使用:参见regex demo。你知道吗
详细信息:
^
-字符串开头\s*
-0+空格(\w+)
-捕获组#1匹配1个或多个字母/数字/下划线\s*=\s*
-=
用0+空格括起来(.*?)
-捕获组#2匹配任何0+个字符,尽可能少,直到第一个。。。你知道吗(?:(?:\s{4,}|\[)(.*))?
-可选的组匹配(?:\s{4,}|\[)
-4个或更多的空格或[
(.*)
-捕获组#3匹配0+个字符,最多$
-字符串的结尾。你知道吗相关问题 更多 >
编程相关推荐