Regex 正则表达式在字符串中打印文件扩展名
我想要一个正则表达式来获取前缀为5个字符的文件扩展名 假设输入: rtdsa.log;dsfdskj.env uopy.java asdflhlahd sdi.logasd sdf.env98 我想: rtdsa.log fdskj.env uopy.java 规则: 使用扩展名的5字符前缀打印,如果扩展名以字母或数字(如.logasd或.log78)继续,则不打印 我试过:Regex 正则表达式在字符串中打印文件扩展名,regex,Regex,我想要一个正则表达式来获取前缀为5个字符的文件扩展名 假设输入: rtdsa.log;dsfdskj.env uopy.java asdflhlahd sdi.logasd sdf.env98 我想: rtdsa.log fdskj.env uopy.java 规则: 使用扩展名的5字符前缀打印,如果扩展名以字母或数字(如.logasd或.log78)继续,则不打印 我试过: 'file ext': r'.(.log|.env|.java)[a-zA-Z0-9=:_\+\/-]{0}', 我得
'file ext': r'.(.log|.env|.java)[a-zA-Z0-9=:_\+\/-]{0}',
我得到:
文件ext->d文件ext->s文件ext->a.log文件ext->;文件ext->k文件ext->j.env文件ext->g文件ext->p文件ext->y.java文件ext->i.log文件 ext->a文件ext->f.env文件ext->9文件ext->8
文件扩展->b文件扩展->f.java文件扩展->文件扩展->f 文件外部->l文件外部->h` 你可以用
\w{1,5}\.(?:log|env|java)\b
看。请注意,您可以将\w
替换为\S
,以匹配任何非空白字符
详细信息
-一到五个字母/数字/下划线\w{1,5}
-一个点\。
-(?:log | env | java)
,log
或env
子字符串java
-单词边界,紧靠右侧,必须有非单词字符或字符串结尾\b
[^\s.]{1,5}\(?:log | env | java)\b
或\w{1,5}\(?:log | env | java)\b
,请参阅。uopy.java
如何匹配5个字符规则?嘿@WiktorStribiż。谢谢你的解决方案。我有疑问,如何像composer.json一样正则定义的filename.ext?@β.εηοιτ.βε{1,5}将在识别.ext并盲目打印5个字符前缀后考虑