Python re (?=...) (?!...) (?:...) 请路过的回答下 谢谢

M0521 2010-03-12 09:26:15
通俗的解释下 谢谢!
...全文
1831 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
thy38 2010-03-13
  • 打赏
  • 举报
回复
我看的是《精通正则表达式》,它的术语叫:正向环视、逆向环视。

补充LS没说的:(?:...)是非捕获型括号。

其实LZ看Python的re模块文档就全知道了
M0521 2010-03-13
  • 打赏
  • 举报
回复
谢谢各位的帮助!
我有看Python 文档 自己动手写点demo理解的可能快点 下面是我自己的写的



print 'begin'
print '找出整数'
#L------------------------------------------------R
search_job(r"(?:[a-z]*)[1-9]+","defg1234abcd1234") #wrong
search_job(r"(?:\d+)","defg1234abcd1234")
search_job(r"(?=[a-z]*)[1-9]+","defg1234abcd1234")
search_job(r"(?![a-z])[1-9]+","defg1234abcd1234")
search_job(r"(?<=-)\d+","deferrr-1234abcd-5678")
search_job(r"(?<!\d)\d+","deferrr-1234abcdxx@@@@-5678")
findall_job(r"(\w+[.](?!bat[\w|\t]+|exe[\w|\t]+)\w+)","simplex.bat pg.batx pen.bat ogoo.exe red.exers mouse.exe kl.exe er")



luotuo512 2010-03-12
  • 打赏
  • 举报
回复
再给你个有例子的链接。
http://liangzhuoyao.blog.51cto.com/808081/167615
luotuo512 2010-03-12
  • 打赏
  • 举报
回复
哈哈哈哈,我今天刚看的这些。
以下是转载的。

零宽度断言

关于零宽度断言有多种叫法,也有叫环视、也有叫预搜索的,我这里采用的是 MSDN 中的叫法,关于零宽度断言有以下几种:

(?= 子表达式 ): 零宽度正预测先行断言。仅当子表达式在此位置的右侧匹配时才继续匹配。例如, 19(?=99) 与跟在 99 前面的 19 实例匹配。

(?! 子表达式 ): 零宽度负预测先行断言。仅当子表达式不在此位置的右侧匹配时才继续匹配。例如, (?!99) 与不以 99 结尾的单词匹配,所以不与 1999 匹配。

(?<= 子表达式 ): 零宽度正回顾后发断言。仅当子表达式在此位置的左侧匹配时才继续匹配。例如, (?<=19)99 与跟在 19 后面的 99 的实例匹配。此构造不会回溯。

(?<! 子表达式 ): 零宽度负回顾后发断言。仅当子表达式不在此位置的左侧匹配时才继续匹配。例如 (?<=19) 与不以 19 开头的单词匹配,所以不与 1999 匹配。
源码链接: https://pan.quark.cn/s/a4b39357ea24 在C语言编程环境中,多项式求和是一项常见的编程实践,它融合了数学理论、算法设计以及C语言的基础运用。此类程序可能包含对用户输入的多项式表达式进行解析,进而计算各项的总和。接下来将对这一主题进行深入阐述。 多项式在数学领域是一个基础性概念,它由常数、变量及指数通过线性方式组合而成,例如表达式`3x^2 + 2x - 1`。在C语言环境下,我们可以借助数组来表示多项式的各项系数,例如通过定义一个整型数组`int coefficients[] = {3, 2, -1}`来保存表达式`3x^2 + 2x - 1`的系数值。 1. **多项式解析**: 解析多项式的过程通常需要从用户处获取输入数据,如表达式`3x^2 + 2x - 1`。在C语言中,可以利用`scanf()`函数来接收用户的输入。解析流程涉及到识别每个项的系数、变量及指数,这可能需要运用到字符串处理函数,例如使用`strtok()`函数来分割字符串,以及通过`atoi()`或`atof()`函数将字符串转换为数值类型。 2. **数据结构构建**: 为了高效地处理多项式,可以设计一个结构体用以存储每一项的系数和指数信息。例如: ```c typedef struct { int coefficient; int exponent; } Term; ``` 随后,可以选用链表或数组来存储这些结构体实例,以此来完整表示一个多项式。 3. **求和运算**: 求和操作可能包含两个阶段:(1) 对相同指数的项进行系数相加,(2) 将计算结果整合至最终的多项式表达式中。在处理同次幂项时,需要遍历两个多项式,识别出具有相同指数的项...

37,739

社区成员

发帖
与我相关
我的任务
社区描述
JavaScript,VBScript,AngleScript,ActionScript,Shell,Perl,Ruby,Lua,Tcl,Scala,MaxScript 等脚本语言交流。
社区管理员
  • 脚本语言(Perl/Python)社区
  • WuKongSecurity@BOB
加入社区
  • 近7日
  • 近30日
  • 至今

试试用AI创作助手写篇文章吧