2017-05-30 197 views
-2

输入字符串Python的正则表达式查找字母和数字

我以前'findall'地发现,只有字母和数字(被发现未指定的字数)字样。

我创建:

words = re.findall ("\ w * \ s", x) # x is the input string 如果我进入"asdf1234 cdef11dfe a = 1 b = 2" 这些句子分隔asdf1234, cdef11dfe, a =, 1, b =, 2 我想挑出只有asdf1234cdef11dfe

你怎么写一个正则表达式?

回答

0

这一个应该工作:(?<![\"=\w])(?:[^\W_]+)(?![\"=\w])

说明

(?:[^\W_])+什么,但一个非文字字符或下划线的至少一个时间(非捕获组)

(?<![\"=\w])不受" precedeed或单词字符

(?![\"=\w])之后不是"或单词字符

RegEx Demo

示例代码Run online

import re 

regex = r"(?<![\"=\w])(?:[^\W_]+)(?![\"=\w])" 

test_str = "a01a b02 c03 e dfdfd abcdef=2 b=3 e=4 c=\"a b\" aaa=2f f=\"asdf 12af\"" 

matches = re.finditer(regex, test_str) 

for matchNum, match in enumerate(matches): 
    print (match.group()) 
+0

谢谢答复,但我需要更多帮助,如果我输入 “a01a b02 c03 e dfdfd abcdef = 2 b = 3 e = 4 c =”ab“aaa = 2f f =”asdf 12af“” 我只想选择a01a,b02,c03,e,dfdfd 我该如何创建正则表达式 –

+0

结帐我更新的答案。 –

+0

非常感谢! –

2

尝试/[a-zA-z0-9]{2,}/

这会查找连续至少2次的所有字母数字字符([a-zA-Z0-9])({2,})。这将是滤除字符串的单个字母单词的唯一方法。

\w的问题是它包含下划线。

+0

感谢回答,但我需要更多的帮助,如果我进入 “A01A B02 C03Ëdfdfd ABCDEF = 2 B = 3 E = 4 c =“ab”aaa = 2f f =“asdf 12af”“ 我只想选择a01a,b02,c03,e,dfdfd 我如何创建正则表达式 –

相关问题