每次逗号在字母之前时查找的正则表达式
Regex for finding every time when comma is before an alphabetic
我的字符串如下:
'a=b,1,2,3,4,**c**=34,76,67,54,**bc**=78,45,**h**=565,64'
尝试过:
mylist = re.findall(r"(\w+):(\d+(?:,\d+)*)", mystring)
输出:带有附加字符串的粗体字符:
[(**c**=('34','76','67','54')),(**bc**=('78','45')),(**h**='565',64')]
我试过了。
但这结果也是一样的,我需要所有的值,直到它在字母表前找到逗号。
您可以在 findall
中使用这个基于前瞻性的正则表达式:
>>> str = 'a=b,1,2,3,4,c=34,76,67,54,bc=78,45,h=565,64'
>>> print re.findall(r',([a-zA-Z].*?)(?=,[a-zA-Z]|$)', str)
['c=34,76,67,54', 'bc=78,45', 'h=565,64']
正则表达式详细信息:
,
:匹配文字逗号
([a-zA-Z].*?)
:后跟一个捕获组,该捕获组匹配以字母开头后跟 0 个或多个任意字符(非贪婪)的文本
(?=,[a-zA-Z]|$)
:先行断言我们有一个逗号后跟一个字母表或前面的字符串结尾
我的字符串如下:
'a=b,1,2,3,4,**c**=34,76,67,54,**bc**=78,45,**h**=565,64'
尝试过:
mylist = re.findall(r"(\w+):(\d+(?:,\d+)*)", mystring)
输出:带有附加字符串的粗体字符:
[(**c**=('34','76','67','54')),(**bc**=('78','45')),(**h**='565',64')]
我试过了。
但这结果也是一样的,我需要所有的值,直到它在字母表前找到逗号。
您可以在 findall
中使用这个基于前瞻性的正则表达式:
>>> str = 'a=b,1,2,3,4,c=34,76,67,54,bc=78,45,h=565,64'
>>> print re.findall(r',([a-zA-Z].*?)(?=,[a-zA-Z]|$)', str)
['c=34,76,67,54', 'bc=78,45', 'h=565,64']
正则表达式详细信息:
,
:匹配文字逗号([a-zA-Z].*?)
:后跟一个捕获组,该捕获组匹配以字母开头后跟 0 个或多个任意字符(非贪婪)的文本(?=,[a-zA-Z]|$)
:先行断言我们有一个逗号后跟一个字母表或前面的字符串结尾