python 正则表达式可选匹配连字符

标签 python regex

如何编写正则表达式以接受连字符但不是强制的。

因为文件夹名称中可以包含连字符,有时则没有。

当我尝试这个时:

r'^(?P<event_folder_name>[\w-]+)/$/result

它只接受连字符

如果我尝试这样:

r'^(?P<event_folder_name>\w+)

如果包含连字符,它不会接受它。

我怎样才能让它接受这两种情况。

谢谢。

最佳答案

首先,$ 符号匹配字符串的结尾。正则表达式中它后面的任何内容都将被丢弃。

其次,你的第一条规则对我来说似乎没问题(当然表达式中间的 $ 除外)。 [\w-]+ 表示任何字母数字字符 (\w) 或连字符 (-) 一次或多次 ([] +)。

关于python 正则表达式可选匹配连字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24151165/

相关文章:

python - '__main__' 在 type() 的输出中意味着什么

python - 删除重复行但有条件

python - 删除/创建与删除/更新的性能

python - 如何在python中提取txt文件中的数字

regex - 如何使用 bash 中的 grep 停止贪婪

python - 重命名 PySpark Dataframe 中的透视和聚合列

Python - 按照命令写入文件

正则表达式 : replace a phrase only if NOT preceded by a word

c# - 提高多个字符串比较的效率(正则表达式?)

regex - 提取带有前缀的姓氏的正则表达式