сторонняя программа, которую я вынужден использовать, определяет, как обрабатывать пути, в зависимости от того, является ли введенный ввод отдельным словом или полным путем: в первом случае путь интерпретируется относительно неясного корневого каталога .
Итак, учитывая, что входные данные могут быть полным или относительным путем или одним словом (включая подчеркивания и тире, но не пробелы), мне интересно, как написать функцию, которая определяет, является ли ввод одиночным » Слово "как определено выше.
Например:
- «Public_345» будет классифицироваться как действительное «слово»
- "/ home / путь / к / чему-то", очевидно, не будет
- «Foo bar» также не будет считаться допустимым «словом»
Поскольку строковые методы не подходят, мне интересно, можно ли было бы использовать регулярное выражение. Изначально я придумал что-то вроде этого:
match = re.compile(r"[\w-]+")
word = "abdcde_-4"
if len(re.findall(match, word)) == 1:
print "Single word"
Однако это действительно ужасно, и я уверен, что это не уловит угловых случаев. Есть ли (намного) лучшие решения там?