Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/18.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Regex 正则表达式在字符串中打印文件扩展名_Regex - Fatal编程技术网

Regex 正则表达式在字符串中打印文件扩展名

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}', 我得

我想要一个正则表达式来获取前缀为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}',
我得到:

文件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个字符前缀后考虑