$pattern="<B>全国主要城市、县当天和未来五天天气趋<B>(.*?)<center style="padding:3px">si&q

$pattern="<B>全国主要城市、县当天和未来五天天气趋<B>(.*?)<center style="padding:3px">si&q,第1张

这条正则的意思是要获取
<B>全国主要城市、县当天和未来五天天气趋</B>

<center style="padding:3px">
这2句html代码中间的内容。
<B></B>是html标签,意思是加粗,
<center style="padding:3px"> 是html+css
上面2句并不是正则表达式的语法,里面的 () 才是正则语法,表示获取任何字符内容
上面的\这几个反斜杠是转移,防止被翻译成正则表达式的语法
/si是正则的模式修饰符 s表示换行匹配,就是包含换行符,如果不加 s 这个修饰符,则获取的内容中间如果出现了换行的代码,就无法进行匹配;i表示大小写匹配,就是<B>或者<b>这样的匹配字母都可以

"\"是转义符。

C中定义了一些字母前加"\"来表示常见的那些不能显示的ASCII字符,如\0,\t,\n等,就称为转义字符,因为后面的字符,都不是它本来的ASCII字符意思了。

拥有转义字符的原因基本上是两点:

一、使用转义字符来表示字符集中定义的字符,比如ASCll里面的控制字符及回车换行等字符,这些字符都没有现成的文字代号。所以只能用转义字符来表示 。

二、某一些特定的字符在编辑语言中被定义为特殊用途的字符。这些字符由于被定义为特殊用途,它们失去了原有的意义。

扩展资料

八进制转义字符

八进制转义字符它是由反斜杠'/'和随后的1~3个八进制数字构成的字符序列。例如,'\60'、'\101'、'\141'分别表示字符'0'、'A'和'a'。

因为字符'0'、'A'和'a'的ASCII码的八进制值分别为60、101和141。字符集中的所有字符都可以用八进制转义字符表示。如果你愿意,可以在八进制数字前面加上一个0来表示八进制转移字符。

参考资料来源:百度百科—转义字符

以下是实例:
\a 响铃
\b 退格
\f 换页
\n 换行
\r 回车
\t 水平制表
\v 垂直制表
\\ 反斜线字符''\'
\ 问号“”
\' 单引号(撇号)字符
\" 双引号字符
\0 空字符(NULL)
\ddd 三位八进制
\xhh 二位十六进制
总的转义符就这些啦,
所谓合法的,就是符合以上形式的转义符,除此之外的均不是,比如\ba,这就是先退格再让a覆盖在上面,而不是先退格再响铃,凡是碰到反斜杠“\”就要警惕了,看看有没有以上所述的转义,若没有基本上是错的;
还要注意的是如果输入的是\其他英文字母(不在上述之列),输出的会是ASCII码(具体参见ASCII码对照表)
下面的实例可以帮助您理解转义符:
#include <stdioh>
int main(void)
{
printf("12345678901234567890\n"); /参考数据/
printf("abc\tdef\n"); /转移符使用/
printf("abc\tde\bf\n");
printf("abc\tde\b\rf\n");
printf("abc\"def\"ghi\\n");
printf("整数98\n"); /转移符数制/
printf("八进制表达整数98是 \142\n");
printf("十六进制表达整数98是\x62\n");
return 0;
}

这个问题和正则表达式无关
""需要两个斜杠是因为""在正则表达式中作为具体字符出现时需要转义,即前面加一个斜杠
而"""在正则表达式中并不需要转义,所以不需要加斜杠
但是在JAVA的字符串中斜杠("\")和双引号(""")都是特殊符号,需要加一个斜杠来转义
故:
""--正则约束-->"\"--JAVA中字符串约束-->"\\"
"""-----------------------JAVA中字符串约束-->"\""


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/13370691.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-07-23
下一篇 2023-07-23

发表评论

登录后才能评论

评论列表(0条)

保存