输入字符串
我使用'findall'
查找仅包含字母和数字的单词(未指定要找到的单词数)。
我创建了:
words = re.findall ("\ w * \ s", x) # x is the input string
如果我输入"asdf1234 cdef11dfe a = 1 b = 2"
这些句子分开asdf1234, cdef11dfe, a =, 1, b =, 2
我只想选择asdf1234
,cdef11dfe
你怎么写正则表达式?
答案 0 :(得分:2)
尝试/[a-zA-z0-9]{2,}/
。
这会连续至少2次查找任何字母数字字符([a-zA-Z0-9]
)({2,}
)。这将是过滤掉字符串的单字母单词的唯一方法。
\w
的问题在于它包含下划线。
答案 1 :(得分:0)
这个应该有效:.h
<强>解释强>
(?<![\"=\w])(?:[^\W_]+)(?![\"=\w])
除了非单词字符或至少一次下划线外的任何内容(非捕获组)
(?:[^\W_])+
不在(?<![\"=\w])
或字符
"
后面没有(?![\"=\w])
或字符
示例代码 Run online
"