Skip to main content
 首页 » 编程设计

python之确定输入中的字符串是否是 Python 中的单个单词

2025年05月04日20bonelee

我被迫使用的脑死亡第三方程序决定了如何处理路径,具体取决于提供的输入是单个单词还是完整路径:在前一种情况下,路径是相对于一些晦涩的根目录进行解释的.

因此,鉴于输入可以是完整路径或相对路径,或单个单词(包括下划线和破折号,但不包括空格),我想知道如何编写一个函数来确定输入是否为单个 "词”定义如上。

例如:

  • “Public_345”将被归类为有效的“单词”
  • "/home/path/to/something"显然不是
  • “Foo bar”也不会被视为有效的“单词”

由于字符串方法不行,我想知道是否可以使用正则表达式。最初我想到了这样的事情:

match = re.compile(r"[\w-]+") 
word = "abdcde_-4" 
if len(re.findall(match, word)) == 1: 
    print "Single word" 

但是,它确实感觉非常丑陋,而且我很确定它不会捕捉到极端情况。那里有(很多)更好的解决方案吗?

请您参考如下方法:

您可以调整您的正则表达式以匹配整个输入字符串,这样您就不必计算匹配项了。即

if re.match(r'\A[\w-]+\Z', word): 
  print "Single word" 

(如果您愿意,请编译正则表达式)

\A 和 \Z 分别匹配输入字符串的开头和结尾。因此,如果您的 word 中除了路径之外还包含其他数据,那么上述方法将不起作用。