Php 试图从遗留项目中理解正则表达式

Php 试图从遗留项目中理解正则表达式,php,regex,preg-replace,Php,Regex,Preg Replace,在我目前正在研究的一个代码库PHP中,有一个正则表达式: !([a-z0-9]*)\.([a-zA-Z0-9]{3,4}) ([a-z0-9]*)\.([a-zA-Z0-9]{3,4}) 应该是这样的: a1213asddaa13124312ada.12ws 但事实并非如此。仅与此表达式匹配: !([a-z0-9]*)\.([a-zA-Z0-9]{3,4}) ([a-z0-9]*)\.([a-zA-Z0-9]{3,4}) 谁能澄清一下吗?!没有特别的意义。它将匹配一个文字感叹号。a12

在我目前正在研究的一个代码库PHP中,有一个正则表达式:

!([a-z0-9]*)\.([a-zA-Z0-9]{3,4})
([a-z0-9]*)\.([a-zA-Z0-9]{3,4})
应该是这样的:

a1213asddaa13124312ada.12ws
但事实并非如此。仅与此表达式匹配:

!([a-z0-9]*)\.([a-zA-Z0-9]{3,4})
([a-z0-9]*)\.([a-zA-Z0-9]{3,4})

谁能澄清一下吗?

!没有特别的意义。它将匹配一个文字感叹号。a1213asddaa13124312ada.12ws不是以一开始的。

您的第一个正则表达式已经!就我所知,在startAs!在PHP正则表达式中不应该是元字符,所以它可能试图匹配!完全正确。你们可以在网站上用不同的语言测试你们的正则表达式。谢谢Nicola。就是这样: