我需要这个正则表达式的帮助。我有许多格式为:
DataFile_en.dat
DataFile_de.dat
DataFile_es.dat
它是 DateFile_ 后跟两个字符的语言代码。
我想编写一个正则表达式来匹配所有具有此模式的文件名,但不包括英文(DataFile_en.dat)
我有这个模式来提取所有文件:
DataFile_\w{2}.dat
但我不知道如何编写模式以排除以“en”作为语言代码的模式。正则表达式将在 Python 中使用。
您可以使用负前瞻。您可以在此处找到有关内容的更多信息。本质上,它“向前看”并确保括号中的正则表达式不匹配。
DataFile_(?!en)\w{2}\.dat
请注意,您应该转义该句点,因为它将匹配任何字符。
您可以使用负前瞻。 (?!something)
意思是“失败,除非你能避免匹配某些东西”。
DataFile_(?!en)\w{2}\.dat
一种可能性是使用DataFile_(([^e].)|e[^n])).dat
,这保持在正则表达式的经典“常规语言”限制内,但以牺牲一些可读性为代价。