成语| 古诗大全| 扒知识| 扒知识繁体

当前位置:首页 > 趣味生活

正则表达式是什么意思

Q1:正则表达式是什么意思

正则表达式是搜索、替换和解析复杂字符模式的一种强大而标准的方法。如果你曾经在其他语言(如Perl)中使用过它,他们的语法非常相似,那么你仅仅阅读一下re模块的摘要,大致了解其中可用的函数和参数就可以了。
字符串也有很多方法,可以进行搜索(index, find, 和 count), 替换(replace)和解析 (split), 但他们仅限于处理最简单的情况。搜索方法查找单个和固定编码的子串,并且他们总是大小写敏感的。对一个字符串s, 如果要进行大小写不敏感的搜索,则你必须调用 s.lower() 或 s.upper() 将s转换成全小写或者全大写,然后确保搜索串有着相匹配的大小写。replace 和 split方法有着类似的限制。
如果你要解决的问题利用字符串函数能够完成,你应该使用他们。他们快速、简单且容易阅读,而对于快速、简单、可读性强的代码等方面有很多内容。但是,如果你发现你用了许多不同的字符串函数和 if语句来处理一个特殊情况,或者你组合使用了 split 、join 等函数而导致用一种奇怪的甚至读不下去的方式理解列表,此时,你也许需要转到正则表达式了。
尽管正则表达式语法较之普通代码相对麻烦一些,但是却可以得到更可读的结果,与用一长串字符串函数的解决方案相比要好很多。在正则表达式内部有多种方法嵌入注释,从而使之具有自文档化 (self-documenting) 的能力。

Q2:java正则表达式/是什么意思

1、()表示分组:将一序列正则表达式看作一个整体;
2、^表示正则开始,$表示正则结束;
3、:表示该位置的字符为冒号;
4、\w相当于a-zA-Z0-9_,匹配单词字符;
望~~!!!

Q3:这个正则表达式是什么意思?^(?=[1-9])(?=.[A-Z]).{10,12}$

/^[-.-_A-Za-z0-9]+@([_A-Za-z0-9]+\.)+[A-Za-z0-9]{2,3}$/
分成2部分,@之前和之后
@之前
^[-.-_A-Za-z0-9]+表示允许出现- . _ 和字母数字这些,且必须大于1个字符,字数无上限,而且他们出现的位置都不限
@之后
([_A-Za-z0-9]+\.)+[A-Za-z0-9]{2,3}$
([_A-Za-z0-9]+\.)+表示允许大于1个字母数字出现,后面跟 .
[A-Za-z0-9]{2,3} 表示允许2个或3个字母数字的组成的单词出现
下面的验证,根据你的修改了一些
/^[^\_][\w\-\.]+@[\w\.]+[\w]{2,3}$/
@之前
^[^\_][\w\-\.]+排除下划线出现在用户名头位置,\w表示所有字母和数字,下划线
后面都差不多意思
------------------------------------
不好意思,没注意到你的补充,现在才看到
1.我的代码里最前面的/^是表示正则表达式的开始的吧?
a:是的,^是开始符号$是结束符号
2.按我的代码,第二个横线是不是可以去掉,而且原意不变?(我试过,去掉第一个不可以,去掉第二个代码能正常运行),如果不可以去掉那么要它有什么用?
我试过用/^[-.-_-----A-Za-z0-9]+@([_A-Za-z0-9]+\.)+[A-Za-z0-9]{2,3}$/这个代码也能用,也就是说从我那里的第三个横线开始加多少个都可以。
3.df.-.g_d._fg@aa.aa.aa.bbbbbbbbb这个字符串可以在你的表达式里通过,这个违背了,我之前的意思:及最后一个单词后面只能是两个或三个字母。
a:俩个短横线保留一个就可以了,不能去掉第一个的原因是第二个短横线-应该被当成连接符了,就想A-Z这样的中间的链接符,你去掉第一个的话,在第二个短横线那里加个反斜杠\就好了
你提出的错误确实是存在,应该是[\w.]+这里出问题了,这[]里面的是可选的,而不是必须的,所以在匹配bbbbbbbbb的时候在[\w.]+这里成功,最后的[\w]{2,3}没起到作用,造成了这个错误,我改了一下,这样在没有到字串末尾时连接点.就成为必须字符
/^[^\_][\w\-\.]+@([\w]+\.)+[\w]{2,3}[^\_]$/

Q4:Python正则表达式中re.M 是什么意思

正则表达式中的re.M表示将字符串视为多行,从而^匹配每一行的行首,$匹配每一行的行尾

我给你个Python语言的例子,你看看吧

这个程序是匹配冒号加一个空格后的数字串,中间有换行符\n所以用多行匹配re.M

#!/usr/bin/python3、
importre
line="IF_MIB::=Counter32:12345\nIF_MIB::=Counter32:1234556";
result=re.findall(r(?<=\:\s)\d+$,line,re.M)
ifresult:
print(result)
else:
print("Nothingfound!!")
运行结果
[12345,1234556]

Q5:正则表达式中 [\w-]和\. 是什么意思?

[\w-] 就是匹配任意字母和符号- (减号)
\. = 就是匹配符号. (点)

android中怎么用正则表达式?

1、如果只是简单的判断某字符串s是否与特定正则表达式字符串exp匹配 s.matchs(exp);

2、如果需要更复杂的操作:
Pattern p = Pattern.compile(exp);
Matcher m = p.match(s);

3、调用Matcher类的API即可。Java正则表达式字符串的书写可参考Pattern类的说明。

Q6:正则表达式中的*是什么意思

*是一个限定符,用来修饰前一个字符或分组,限定匹配重复的数量为任意数量。
例如:
正则表达式:a*,可以匹配a、aa、aaa、aaaa、aaaaaaa等等。
正则表达式:(ab)*,可以匹配ab、abababab、ababababababab等等。后边多一个?表示懒惰模式。
必须跟在*或者+后边用。
如:
如果用正则匹配src中内容非懒惰模式匹配。
src="https://www.bazhishi.com/aldyjtapi/.*"。
匹配结果是:src="https://www.bazhishi.com/aldyjtapi/test.jpg" width="60px" height="80px"。
意思是从="往后匹配,直到最后一个"匹配结束。
懒惰模式正则:
src="https://www.bazhishi.com/aldyjtapi/.*?"。
结果:src="https://www.bazhishi.com/aldyjtapi/test.jpg"。
因为匹配到第一个"就结束了一次匹配。不会继续向后匹配。因为他懒惰嘛。
.表示除\n之外的任意字符。
*表示匹配0-无穷。

猜你喜欢

更多