如何用正规表达式查找不以某些字符结尾的单词——一次回帖想到的

DEM高程数据的获取、合并与坐标转换 DEM高程数据的获取、合并与坐标转换一、DEM数据的获取二、数据合并三、投影转换方法一四、投影转换方法二 今天用DEM数据做了一个坡度分析,数据使用过程中涉及到投影坐标转换,由于不是很熟悉所以费了一番功夫。经过一番折腾总结出两个方法,方法一自认为比较便捷的方法,即通过BIGMAP软件中工具列表中的投影转换功能进行。方法二为传统方法,即在Arcgis中用投影栅格工具进行转换。 一、DEM数据的获取 在地理空间数据云网站下载DEM数据(精度包括30米和90米),数据格式为tif格式或img格式,坐标为WGS_1 阅读详情

原贴子在这里:

http://topic.youkuaiyun.com/u/20100205/16/33f62568-ad66-435b-a3b5-99da746e6dde.html?seed=1920623080&r=63305046#r_63305046

经过整理,心得如下:


为了说明问题方便,缩短测试用例,要求是找出不以'ly'结尾的单词。
txt = 'thy38ly thy38 ly'
一开始写的正则表达式是用的顺序否定环视 :


意思也很直接了当:用/b界定单词,前面由至少一个/w组成,且不以ly结尾。但匹配结果是
['thy38ly', 'thy38', 'ly']
经过反复思考发现,上面的意思只是从人的思维角度出发去考虑的,在匹配过程中应该是一个从左到右逐个试验的过程(而不是先将一个单词界定好,再去判断单词是否满足条件 ):
先从/b开始,匹配一个单词的开头,然后匹配t,满足/w+,后面又不跟ly,但不满足之后的/b,即不是单词的结尾。随即放弃这个结果,/w+前进一个 字符,又匹配了h,又以同样的理由放弃,...,依次前进到8,显然8不满足不以ly结尾这个条件,放弃。/w+继续前进到l,满足后面不跟ly的条件, 但后面不是/b,/w+继续到y,发现完全满足条件,OK,匹配!

现在我将reg0的/b限制去掉,可以看到很清楚:

结果是:
['t', 'h', 'y', '3', '8l', 'y', 't', 'h', 'y', '3', '8', 'l', 'y']
很清楚,它没有匹配8,但可以匹配8l。

最后来看看正确的表达式:


结果是:
['thy38']
这里使用了一个逆序否定环视 ,当/w+匹配到thy38ly中的最后一个y时,没问题,但在末尾的/b就无法匹配了,因为/b的前面出现了ly。

由此我想是不是可以这么说:*、+的后面不要使用顺序否定环视功能?因为*、+几乎总能忽略了它,这时应该改用逆序否定环视。

说得不对的地方,请高手多多批评!

多目标跟踪中使用trackeval评估dancetrack运行结果 trackeval使用 阅读详情

相关推荐

别再到处找了!GWAS数据下载保姆级指南:从IEU、FinnGen到UK Biobank一站搞定

本文提供GWAS数据下载的全面指南,涵盖IEU OpenGWAS、FinnGen、UK Biobank等五大核心数据库的获取策略。从数据库选型到实战操作,详细解析数据搜索、下载、预处理全流程,帮助科研人员高效获取GWAS数据,特别适合初学者快速上手。

weixin_42523543的博客 1586

java正则表达式不以某个字符串开头或结尾

Cooking Regex微信公众号 正则表达式学习 一、不以某个字符串开头 这个问题我们可以用 “否定式向前匹配”来实现,语法 (?!str),表示后面不是接str才匹配前面的字符串。如we(?!123)会匹配welcome中的we,但不匹配we123中的we。所以(?!str)的前面不要有字符串就表示不以str开头了。 因此我们若想要匹配由26个小写字母组成,但不以ab字符串为开...

※老鼠拧刀满街找猫※ 4万+

(P2)PALM软件的基本使用流程

上一篇介绍了PALM在Ubuntu系统上的下载安装及安装后的目录文件结构,这一篇以自带的案例介绍软件的基本操作流程。(请转至example_cbl项目) 输入 声明:官网均有各个变量的说明,以下代码来自软件自带案例 palm的最小输入文件是p3d文件,以下是example_cbl_p3d的详细说明。(文件语言格式Fortran,请自行先学习下语言的基本语法。笔者也是新学者,有非常多的问题,很多参数也不能准确的说出是什么意思,还请不吝赐教,谢谢!!!) !几点说明 !1、该运行文件基本由三大块组成:1)in

ysqzhatian的博客 3260

正则表达式不以某个字符结尾

通用表达式: (?!需要过滤的字符) 例子: 不以f结尾: (?!F) 注:关于区分大小写的问题,可参考:https://www.runoob.com/python/python-reg-expressions.html中的修饰符 不以汉字‘发’结尾: (?!发) 注:正则表达式中需要过滤汉字时,不需要使用引号引起来 其他过多例子不再举例,试一试就会了。 存在什么不足的地方,欢迎联系我,谢谢 ...

GLYX5717的博客 8596

逆变器专题(9)-基于dq坐标系的逆变器解耦控制建模与实时仿真分析

本文深入探讨了基于dq坐标系的逆变器解耦控制建模与实时仿真分析。通过生动的比喻和详细的数学推导,阐述了如何通过坐标变换和前馈补偿实现d轴与q轴的独立控制,从而提升系统动态性能与稳定性。文章还介绍了在MATLAB/Simulink中搭建仿真模型、分析动态响应与稳定性的方法,并展望了硬件在环(HIL)实时仿真的高级验证手段,为新能源并网与电机驱动领域的工程师提供了宝贵的实践指南。

gold的博客 547

手把手教你搞定JBI投稿:从Statement of Significance到Declaration Statement的保姆级避坑指南

本文提供了一份详细的JBI投稿指南,重点解析Statement of Significance和Declaration of Interests的撰写技巧,帮助研究者避开常见格式陷阱。通过实战案例和检查清单,确保投稿符合JBI的学术严谨性和临床转化价值要求,提升稿件通过率。

weixin_29278805的博客 625

正则中不以某些字符开头,或者不以某些字符结尾的解决方法

正则中不以某些字符开头,或者不以某些字符结尾的解决方法 需要解决的问题如下: 名称校验中只能包含数字大小字母下划线和点字符,但是不能以 - 和 点字符开头,且不能以点字符结尾。 1.不以某些字符开头 正则的正常开头和结尾分别是 ^ 和 $ 符号 ,^ 表示这个正则开始了,$ 则表示这个正则到此结束。 js中定义一个正则: 1. let reg = /^[a-zA-Z0-9]$/ 2. let ...

Brilliant Me 的博客 3万+

Swin Transformer注意力计算复杂度为何比全局注意力少那么多?

本文对比分析了Vision Transformer(ViT)和Swin Transformer的计算复杂度。ViT采用全局注意力机制,计算复杂度为4[hwc^2]+2[(hw)^2C],当图像尺寸较大时计算量显著增加。而Swin Transformer采用窗口注意力机制,将图像划分为M×M的窗口(如7×7),计算复杂度降为4[hwc^2]+2[(hw)(M*M)*C]。以224×224图像为例,Swin Transformer的计算量比ViT减少约900倍,大幅节省了计算资源。文章通过矩阵乘法运算详细推导了

人工智能研究所的博客 63

正则表达式排除指定字符串

阅读目录 查找不以baidu开头的字符串 查找不以com结尾的字符串 查找不含有if的行 回到顶部 查找不以baidu开头的字符串 baidu.com sina.com.cn 正则:^(?!baidu).*$ 匹配结果就是第2行,也就是第1行被排除了 这里使用了零宽度断言(?!exp),注意,我们有一个向前查找的语法(也叫顺序环视) (?=exp) (?=exp) 会查找exp之前的【位置】如果将等号换成感叹号,就变成了否定语义,也就是说查找的位置的后面不能是exp 一般情况下?!要与特定..

thinker 2441

高压控制单元与接触器 —— BMS电池的“高压大门”

高压接触器在BMS电池管理系统中扮演着“高压大门”的角色,负责控制电池包与整车高压母线的连接与隔离。接触器的工作原理基于线圈产生的磁力吸合接点,通过主触点接通高压电流路径,辅助触点检测状态,灭弧结构保护接点。预充电路的设计是为了避免直接连接大电容时产生的浪涌电流冲击,通过预充电阻逐步充电,确保系统安全上电。接触器控制策略包括顺序控制、辅助触点检测、温度监控、故障断电和背靠背MOS辅助控制,以确保系统的高效和安全运行。工程师在选择接触器型号、控制线圈、检测状态、软件冗余控制和预充失败保护等方面提供了具体建议。

weixin_43199439的博客 813

ISO2626 --- Item Definition相关项定义

本文并不是针对ISO26262的一个项目,而是针对ISO26262的规范,我们在相关项定义阶段,我们需要做什么,我们的文档需要包含哪些内容的一个描述。

wj博客 909

正则表达式

正则表达式 (英语:Regular Expression,在代码中常简写为regex、regexp或RE),又称正规表示式、正规表示法、正规表达式、规则表达式、常规表示法,是计算机科学的一个概念。正则表达式使用单个字符串来描述、匹配一系列匹配某个句法规则的字符串。在很多文本编辑器里,正则表达式通常被用来检索、替换那些匹配某个模式的文本。 内容: 正则表达式基本语法: 界定符:标识正则表达式的开始和...

tangyaya8的博客 310

提升ARM Cortex-M系统性能的关键技术:TCM技术解析与实战指南

TCM技术为ARM Cortex-M处理器提供了宝贵的确定性性能提升手段,特别适合对时序敏感的实时应用。通过合理配置和优化,工程师可以显著提高系统性能、降低中断响应时间并优化功耗。随着嵌入式系统对实时性要求的不断提高,TCM技术将在工业控制、汽车电子、医疗设备等领域发挥更加重要的作用。未来,ARM处理器可能会进一步扩展TCM容量并优化其与其他内存子系统的协同工作方式,为开发者提供更强大的实时性能保障。

1681

正则表达式不以某字符串结尾

假设匹配某一不以.jpg结尾的字符串 ^((?!\.jpg$).)*$ 参考:http://www.jb51.net/article/52491.htm

Lyq3413的专栏 2万+

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

正则表达式(整理)

正则表达式简介   有些新手对正则表达式不是很熟悉,有必要在此作一简单回顾。如果你是正则表达式高手,可以不用看这一部分。   正则表达式是描述字符串集的字符串。例如,正则表达式“Mic*”描述所有包含“Mic”,后跟零个或多个字符的字符串。Mickey、Microsoft、Michelangelo 或 Mic 本身都是例子。句号“.”匹配任何字符,“+”类似“*”,但至少要一个字符,所以“

即使身边世事再毫无道理 779

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

正则匹配以什么开头、以什么结尾,以非什么开头,以非什么结尾

正则匹配以什么开头、以什么结尾,以非什么开头,以非什么结尾(1)正则匹配以start开始的字符串 (2)正则匹配以非start开始的字符串。 (3)正则匹配以end结束的字符串。 (4)正则匹配以非end结束的字符串。......

Zhang Phil 1万+

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

Java正则表达式不以指定字符结尾

String s = ".+(?<!\\|)$" boolean matches = Pattern.matches(s, "123|1|"); boolean matches1 = Pattern.matches(s, "2"); System.out.println(matches); System.out.println(matches1); 运行结果: false true ...

dong_1997_的博客 2982

Python 正则表达式查找不是某个字符的字符串

Regular Expression 1. Find All Except a Specific Word \b(?!cat\b)\w+ 2. Find All Except some words \b(?!(?:cat|good)\b)\w+ 3. Find words that don't contain another word \b(?:(?!cat)\w)+\b 4. Find

计算机视觉 2015

Play Ebean数据库操作“或”查询

两种方式:直接看代码 List oclist = find.where().disjunction().add(Expr.eq("main_dist", "A")).add(Expr.eq("main_dist", "C")).findList(); List oclist = find.where().or(Expr.eq("main_dist", "A"),Expr.eq("main_d

Kiss_Fly的专栏 2868

正则断言 - 匹配表达式前后以或不以指定字符开头或结尾的内容

正则断言 - 匹配表达式前后以或不以指定字符开头或结尾的内容 零宽断言 - 能匹配表达式 (?=exp) 零宽度正预测先行断言,断言自身出现的位置的后面,【能匹配】表达式exp (?<=exp) 零宽度正回顾后发断言,断言自身出现的位置的前面,【能匹配】表达式exp 负向零宽断言 - 不能匹配表达式 (?!exp) 零宽度负预测先行断言,断言此位置的后面,【不能匹配】表达式exp (?<!exp) 零宽度负回顾后发断言,断言此位置的前面,【不能匹配】表达式exp...

草青工作室 的专栏 1553

正则表达式:不包含某些指定的单词

2019独角兽企业重金招聘Python工程师标准>>> ...

weixin_33991727的博客 6943

正则表达式:不包含某些指定的单词(超级难的正则式,前无古人哦)

超级难的正则式,前无古人哦 不包含某些指定的单词

邢晓宁专栏 1万+

【正则表达式从字符串中截取不以什么字符结尾的子串】

你好! 这是你第一次使用 Markdown编辑器 所展示的欢迎页。如果你想学习如何使用Markdown编辑器, 可以仔细阅读这篇文章,了解一下Markdown的基本语法知识。 我们对Markdown编辑器进行了一些功能拓展与语法支持,除了标准的Markdown编辑器功能,我们增加了如下几点新功能,帮助你用它写博客:撤销:Ctrl/Command + Z 重做:Ctrl/Command + Y 加粗:Ctrl/Command + B 斜体:Ctrl/Command + I 标题:Ctrl/Command +

zool66的博客 1246

【JS】正则表达式取反(不能以...结尾)

示例 需求:不能以"local"作为结尾 第一种方案:单个字符 /[^local]$/ // 实际效果:不能以字符串"local"其中一个字母作为结尾 第二种方案:整体字符串 /(?<!local)$/ // 实际效果:不能以字符串"local"整体作为结尾 ...

qq_45677671的博客 4138
上一篇: wxPython做GUI:如何在Grid中响应鼠标移动事件
下一篇: 《Python 2.1 宝典》读书笔记
thy38
博客等级 码龄19年 184粉丝 116原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值