正则表达式N个问题
嗯嗯,如前些天的帖子所述,我已经开始学正则了
自己摸索了三两天,现在有些实在是搞不清楚的问题
我现在手上这本书讲得不怎么详细,我是对着百度百科来学的
言归正转
=====================================
=====================================
问题1:
我想问,正则表达式一般都需要用
/ 包住内容吗? /
而如果有修饰符的话,修饰符就写在第二个 / 号后面是吗?(比如 /aAa/i 以i作为修饰符才放第2个 / 号后面)
我是看着百度百科来学的,它这样说到一段:
$
匹配行结束符。例如正则表达式weasel$ 能够匹配字符串"He's a weasel"的末尾
但是不能匹配字符串"They are a bunch of weasels."
于是我用PHP写了下代码调试,
$str2="He's a weasel";
$pm2='weasel$';
if(preg_match($pm2,$str2))
{
echo 'True
';
}
else
{
echo 'False
';
}
但结果却是失败
鼓捣了好久,我终于把
$pm2='weasel$';
改成
$pm2='/weasel$/';
成功了,百科却没有说这样..
可能我没认真看啥的
在这确认一下,搜索的内容用 / 号在左右包住,修饰符在第2个/号后面是吗?压根连书写规则都没搞清楚呢我...别说匹配规则
=====================================
=====================================
问题2:
百科中第一个提到"元字符"的表格里面,第四行提到的 * 号作用,用 .* 匹配我是理解了,但是后面它又这么说"比如
于是我用以上代码测试,却显示 找不到
~~~~~~~~~~~~~~~~~~~~~~
$str1=
test;
$pm1='/
if(preg_match($pm1,$str1))
{
echo '1.找到了
';
}
else
{
echo '1.找不到
';
}
~~~~~~~~~~~~~~~~~~~~~~
这里嘛,它说的
=====================================
=====================================
问题3:
其实我将 \ 理解为转义符,对吗?感觉百科里说法不是很明朗就像C语言里或PHP里的, \n 被转义为 回车符,
\t 是Tab制表符, \\ 是 \ , \/ 就是 / ,\$ 就是 $ 什么的
=====================================
=====================================
问题4:
以下代码是根据百科 字元符 表的第7行所述'例如正则表达式\
$str1=for the wise
test;
$pm1='/\
if(preg_match($pm1,$str1))
{
echo '1.找到了
';
}
else
{
echo '1.找不到
';
}
找不到的原因是不是因为他后面还加了句"这个元字符不是所有的软件都支持的"
=====================================
=====================================
问题5:
关于 ? 号的介绍,百度的完全看不懂,又找了下其它文献
我理解为 app?path 的 ? 号前面的 app 三个字母在path前面出现一次就就能匹配,但是我无法理解这样设置字符
$str1=abcdefg
test;
$pm1='/df?e/';
if(preg_match($pm1,$str1))
{
echo '1.找到了
';
}
else
{
echo '1.找不到
';
}
却也能匹配!哪里有df 啊,连个f都在e的后面,这里开始导致我感觉自己白学了似的,好像还没理解正则的匹配规则!
------解决方案--------------------
看了一半。你就这么理解
/告诉正则 条件开始了 第二个/ 告诉正则 正则条件结束了。就是了其实 这仅仅 是一个组合 你甚至可以用##或者其他字符来代替这个所谓的开始和结束。
在这里面 如果 / xxxxa/xxxxb/ 这个时候 正则会以为到了 xxxxa的时候就结束了,后面就会出错,所这个时候我们就需要转义让它明白 那只是中间的一个字符而不是结束。 这就是为什么要用到转义
$str1=
test;
$pm1='/
这里 的匹配条件是 以
剩下的没看了,让其他人告诉你吧 哈哈
------解决方案--------------------
问题一:
/这里才是真正的正则/
正则都需要用 // 包着在中间,如果有修正符的,加在最后一个/后面
如:preg_match('/aaa$/is') 这里的is是修正符,至于每个是啥意思,你得查了
当然这里要注意一下,//里包着的正则如果也含有/这个东西,需要转义的
还注明一下,这里是用//包着正则,[email protected],你可以试试
问题二:
你这里的当然是找不到的了,你要找的是
问题三:
像问题一我所说的,你用/包着正则,如果你的正则里也出现/,当然要转义了,还有,$^?之类的都是特殊字符,你想直接匹配那特殊字符,当然也要转义了,不然计算机会当是特殊字符去处理
例子:
内容:aaabbb$ccc
如果你想匹配bb$cc 是否符合
1:/bb$cc/ 这当然是有问题的,看字面是与上面的符合,但计算机会把$这个当作最后的意思
2:/bb\$cc/ 这个是正确的

本文讨论了PHP数据对象(PDO),这是PHP中数据库访问的扩展名。它通过准备好的语句及其对MySQLI的好处,包括数据库抽象和更好的错误处理,强调了PDO在增强安全性方面的作用。

memcache和memcached是通过减少数据库负载加快Web应用程序的PHP缓存系统。可以在仔细的密钥管理的项目之间共享一个实例。

本文讨论了JavaScript和PHP如何通过HTTP请求间接相互作用,因为它们的环境不同。它涵盖了将数据从JavaScript发送到PHP的方法

文章讨论了PHP从1995年的“个人主页工具”到1998年的“ PHP:超文本预处理器”的演变,这反映了其超越个人网站的扩展使用。

防止会话固定攻击的有效方法包括:1.在用户登录后重新生成会话ID;2.使用安全的会话ID生成算法;3.实施会话超时机制;4.使用HTTPS加密会话数据,这些措施能确保应用在面对会话固定攻击时坚不可摧。


热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

Video Face Swap
使用我们完全免费的人工智能换脸工具轻松在任何视频中换脸!

热门文章

热工具

EditPlus 中文破解版
体积小,语法高亮,不支持代码提示功能

SublimeText3汉化版
中文版,非常好用

MinGW - 适用于 Windows 的极简 GNU
这个项目正在迁移到osdn.net/projects/mingw的过程中,你可以继续在那里关注我们。MinGW:GNU编译器集合(GCC)的本地Windows移植版本,可自由分发的导入库和用于构建本地Windows应用程序的头文件;包括对MSVC运行时的扩展,以支持C99功能。MinGW的所有软件都可以在64位Windows平台上运行。

mPDF
mPDF是一个PHP库,可以从UTF-8编码的HTML生成PDF文件。原作者Ian Back编写mPDF以从他的网站上“即时”输出PDF文件,并处理不同的语言。与原始脚本如HTML2FPDF相比,它的速度较慢,并且在使用Unicode字体时生成的文件较大,但支持CSS样式等,并进行了大量增强。支持几乎所有语言,包括RTL(阿拉伯语和希伯来语)和CJK(中日韩)。支持嵌套的块级元素(如P、DIV),

DVWA
Damn Vulnerable Web App (DVWA) 是一个PHP/MySQL的Web应用程序,非常容易受到攻击。它的主要目标是成为安全专业人员在合法环境中测试自己的技能和工具的辅助工具,帮助Web开发人员更好地理解保护Web应用程序的过程,并帮助教师/学生在课堂环境中教授/学习Web应用程序安全。DVWA的目标是通过简单直接的界面练习一些最常见的Web漏洞,难度各不相同。请注意,该软件中