【发布时间】:2017-10-26 11:48:26
【问题描述】:
简而言之:我想匹配包含 1 个字母和至少 1 个(数字/某些特殊字符)的任何“单词”(由空格分隔的连续字符集)。这些“词”可以出现在句子的任何地方。
使用re 在python 中尝试此操作到目前为止,作为一种模式,我有:
\w*[\d@]\w*
这在大多数情况下有效;但是,我不希望只有数字/特殊的“单词”。例如:
应该匹配:
h1DF346
123FE453
3f3g6hj7j5v3
hasdf@asdf
r3
r@
不应匹配:
555555
@
hello
onlyletters
在“不应该匹配”下排除前两个时遇到问题。感觉这里缺少一些简单的东西。谢谢!
【问题讨论】:
-
当您说 "word"(连续的字符集)_ 并使用
\w时,它也将包含数字。正如\w代表[a-zA-Z0-9_]。还要澄清哪些_某些特殊字符? -
例如,我发布的模式中的@。应该至少有 1 个字母,AND(1 个数字或 1 个@#)——为了简单起见,我现在只是添加了 @ 示例——我不知道我完全需要哪些字符,但看到模式@ 应该足够了
-
这些“词”是一行中唯一的东西,还是无处不在?
-
可以出现在线上的任何地方。比如:“hello 123test world”应该得到 123test