gpt4 book ai didi

regex - 正则表达式:txt vs tx?

转载 作者:行者123 更新时间:2023-12-03 01:09:37 32 4
gpt4 key购买 nike

我正在尝试使用RegEx验证通配符,并且在\ somefile.tx之间进行区分时遇到麻烦了?和\ somefile.txt。
我已经走了这么远

\\[^\\]*\.[a-zA-Z0-9 ?]{3}$

这将捕获tx ?,但也捕获txt。我如何修改它以捕获“三个字母数字或问号,并且至少必须是一个问号”

目前,我正在使用多个匹配选项正则表达式
\\\*|\\\*\.\*$|\\.\.\*$|\*\.[a-zA-Z0-9 ?]{3}$|\\[^\\]*\.[a-zA-Z0-9 ?]{3}$|\\[^\\]*\.\*$

我开始认为我应该将其移至开关,以便在匹配.txt或.tx时使用?或类似的东西,然后我可以简单地测试一个?扩展程序中的任何位置以将其标记为有效的通配符。但是我怀疑是否有一种方法可以完善单个RegEx。

最佳答案

如果我了解您的情况,这应该可以工作:

您确定此正则表达式还不够:

\\[^\\]*\.[a-zA-Z0-9 ?]{3}$

如果替换此部分:
[a-zA-Z0-9 ?]{3}$

有了这个:
(\?[a-zA-Z0-9\?]{2}|[a-zA-Z0-9\?]\?[a-zA-Z0-9\?]|[a-zA-Z0-9\?]{2}\?)$

相信您会得到想要的结果。

请注意 \?匹配一个问号(问号前没有\,?匹配任何字符之一

分解:
\?[a-zA-Z0-9\?]{2}匹配吗?后跟2个字母数字或?
[a-zA-Z0-9\?]\?[a-zA-Z0-9\?]匹配一个字母数字或?,后跟?,然后是一个字母数字或?。
[a-zA-Z0-9\?]{2}\?匹配2个字母数字或?,后跟?

在这种情况下,上面三个表达式中的每一个都是“子表达式”。括号内的子表达式用“|”分隔,表示选择3个子表达式之一。 (“|”是“或”运算符)

关于regex - 正则表达式:txt vs tx?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41507760/

32 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com