2024-06-26 13:38:45 发布
网友
输入字符串
我使用'findall'来查找只有字母和数字的单词(未指定要查找的单词的数量)。在
'findall'
我创造了:
words = re.findall ("\ w * \ s", x) # x is the input string 如果我输入"asdf1234 cdef11dfe a = 1 b = 2" 这些句子分开了{} 我只想挑asdf1234,cdef11dfe
words = re.findall ("\ w * \ s", x) # x is the input string
"asdf1234 cdef11dfe a = 1 b = 2"
asdf1234
cdef11dfe
如何编写正则表达式?在
尝试/[a-zA-z0-9]{2,}/。在
/[a-zA-z0-9]{2,}/
这将在一行中至少查找2次任何字母数字字符([a-zA-Z0-9])。这是过滤掉字符串中一个字母单词的唯一方法。在
[a-zA-Z0-9]
\w的问题是它包含下划线。在
\w
这个应该有用:(?<![\"=\w])(?:[^\W_]+)(?![\"=\w])
(?<![\"=\w])(?:[^\W_]+)(?![\"=\w])
说明
(?:[^\W_])+除非单词字符或下划线以外的任何内容至少一次(非捕获组)
(?:[^\W_])+
(?<![\"=\w])前面没有"或单词字符
(?<![\"=\w])
"
(?![\"=\w])后面没有"或单词字符
(?![\"=\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())
尝试
/[a-zA-z0-9]{2,}/
。在这将在一行中至少查找2次任何字母数字字符(
[a-zA-Z0-9]
)。这是过滤掉字符串中一个字母单词的唯一方法。在\w
的问题是它包含下划线。在这个应该有用:
(?<![\"=\w])(?:[^\W_]+)(?![\"=\w])
说明
(?:[^\W_])+
除非单词字符或下划线以外的任何内容至少一次(非捕获组)(?<![\"=\w])
前面没有"
或单词字符(?![\"=\w])
后面没有"
或单词字符RegEx Demo
示例代码Run online
相关问题 更多 >
编程相关推荐