python 正则表达式 \bs*.\Se\b与\bs\S*?e\b的含义解释

目的:找出s开头e结尾的单词
对于text2="site sea sue sweet see case sse ssee loses somewhere"
为什么前者可以实现,后者无法实现

实测:

>>> res=re.compile(r'\bs*.\Se\b')
>>> resl=re.findall(res,txt)
>>> resl
['site', 'sue', 'see', 'sse', 'ssee']
>>> res=re.compile(r'\bs\S*?e\b')
>>> resl=re.findall(res,txt)
>>> resl
['site', 'sue', 'see', 'sse', 'ssee', 'somewhere']


第一个正则:

\b ——单词分界,

s*——0个或多个s

.——任一字符

\S——任一非空字符

e——字母e

\b——单词分界


第一个正则是错误的,它还可以匹配   "are"、"ss[一个空格]re",等不符合要求的内容。


后者是可以匹配到的。

温馨提示:内容为网友见解,仅供参考
无其他回答

python 正则表达式,怎样匹配以某个字符串开头,以某个字符串结尾的情况...
1、假设需要匹配的字符串为:site sea sue sweet see case sse ssee loses 需要匹配的为以s开头以e 结尾的单词。 正确的正则式为:\\bs\\S*?e\\b 2、使用python中re.findall函数表示匹配字符串中所有的可能选项,re是python里的正则表达式模块。findall是其中一个方法,用来按照提供的正则表达式,...

python 正则表达式 \\b
\\A匹配字符串开头 ,\\Z匹配字符串结尾 \\AS... 匹配了SPAM ,\\b匹配单词边界\\b匹配了单词SPAM和!之间的虚拟边界,还有一个点匹配!

Python正则表达式里的\\B和\\b的区别!我看文档了.可是还是不明白! 求高 ...
\\b匹配一个单词边界,也就是指单词和空格间的位置。例如,“er\\b”可以匹配“never”中的“er”,但不能匹配“verb”中的“er”。\\B匹配非单词边界。“er\\B”能匹配“verb”中的“er”,但不能匹配“never”中的“er”。维基说的很清楚奥,还有不明白的可以继续问我...

python正则表达式后向引用的一个例子: \\b(\\w+)\\b\\s+\\1\\b可为什么我总...
\\s+表示空白字符,\\1引用前面的\\w+,即重复前面的单词 空白字符后面跟着单词已经隐含了单词边界\\b,加不加\\b匹配的结果都一样

python 正则表达式.*? 是什么意思 详细解释
分开来说:1、. 匹配任意除换行符“\\n”外的字符;2、*表示匹配前一个字符0次或无限次;3、+或*后跟?表示非贪婪匹配,即尽可能少的匹配,如*?重复任意次,但尽可能少重复;4、 .*? 表示匹配任意数量的重复,但是在能使整个匹配成功的前提下使用最少的重复。如:a.*?b匹配最短的,以a开始...

python中关于正则内的\\b,为什么使用\\b时需要用r'\\b',但是\\w则不需要...
因为\\b 有两种解释,而\\w 只有一种。\\b的两种解释是:'\\b', 如果前面不加r, 那么解释器认为是转义字符“退格键backspace”;r'\\b', 如果前面加r, 那么解释器不会进行转义,\\b 解释为正则表达式模式中的字符串边界。而相比于\\b, \\w 只有第二种解释,并没有对应的转义字符,所以不加r, 也不...

python 正则表达式:\\svalues\\s*(\\(((?<!\\\\)'[^\\)]*?\\)[^\\)]*(?<!\\...
有点像匹配 sql中insert into table(c1,c2) values(v1,v2);后面的values 和里面的东西。

正则表达式中,[\\s\\S]* 什么意思。。。“[ ]”不是范围描述符吗?
8.正则中,为了更方便你使用,还弄了个更方便的缩写:\\w 表示 [0-9a-zA-Z_]即 数字 小写字母 大写字母 下划线 的组合 否则每次都这么写,也是累死了。其中 [0-9]也可以用\\d表示 9.关于中括号的,更详细的完整的解释,我早就写了教程了,自己去看吧:【教程】详解Python正则表达式之: [] ...

Python实用技术一:正则表达式
这一章主要讲一讲Python学习中比较深层次的内容,需要大家更加认真的学习。一,正则表达式的基本概念和构成正则表达式是个某些字符有特殊含义字符串,表示一种字符串的模式(格式),\\ 如:\\ 九,匹配对象groups([default]):\\ 以元组形式返回全部分组匹配的字符串。相当于调用group(1 ,2,.. .last)。\\ ...

python正则表达式re.findall(r"\\b\\w+\\b", s)中的r是什么意思?
转换成两个反斜杠后再在正则表达式里转义成一个反斜杠。Python里的原生字符串很好地解决了这个问题,这个例子中的正则表达式可以使用r"\\\\"表示。同样,匹配一个数字的"\\\\d"可以写成r"\\d"。有了原生字符串,你再也不用担心是不是漏写了反斜杠,写出来的表达式也更直观。

相似回答