首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >是否有一种方法可以限制正则表达式中匹配的字符而不限制捕获的字符?

是否有一种方法可以限制正则表达式中匹配的字符而不限制捕获的字符?
EN

Stack Overflow用户
提问于 2022-04-25 12:04:41
回答 1查看 39关注 0票数 2

给出下面的三个字符串,我试图在每个字符串的开头匹配Y tf。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
15 YstfAWIN25  desired matches ->  Y tf
15 YstfMSIN25  desired matches ->  Y tf
15 Ystf20IN25  desired matches ->  Y tf

这个正则表达式(ftY)符合我的目标,但是,它太脆弱了,如果对字符串做一些微小的更改,就会产生错误的结果。例如,15 YstfMYIN25将导致以下匹配Y tf Y -我不想匹配第二个Y。

因此,我尝试使用一个非捕获组来限制匹配的字符。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
([ftY])(?:AW|MS|\d+)

当第二个Y (15 YstfMYIN25)包含在完整字符串中时,此正则表达式将产生以下匹配:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
15 YstfMYIN25  desired matches ->  f

捕获组的添加使得表达式跳过Y和t,我确实玩过让捕获组变得贪婪和非捕获组懒惰,但是我得到了相同的结果。是否有办法使用非捕获组(或其他方式)限制可以捕获的字符,并仍然捕获所有感兴趣的字符?只在这间豪华的Y。

我有以下几个例子:

https://regex101.com/r/EDPqsl/1 https://regex101.com/r/R1tiXz/1

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-04-25 13:46:44

您可以使用

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
^.*?([ftY]).*?(?!\1)([ftY]).*?(?!\1|\2)([ftY])

regex演示。这三个字母将分成三个独立的捕获组。

详细信息

  • ^ -字符串的开始
  • .*? -除断行字符以外的任何零或多个字符,尽可能少。
  • ([ftY]) -第一组:ft还是Y
  • .*? -除断行字符以外的任何零或多个字符,尽可能少。
  • (?!\1)([ftY]) -第2组:ftY,但不包括在组1中捕获的值
  • .*? -除断行字符以外的任何零或多个字符,尽可能少。
  • (?!\1|\2)([ftY]) -第3组:ftY,但不包括在组1和组2中捕获的值。
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/72005170

复制
相关文章
NetBIOS 计算机名称命名限制 长度限制可以使用的字符不可以使用的字符保留字符
最小长度是 1 最长长度是 15 因为默认是 16 字符,但是微软使用最后一个字符作为后缀
林德熙
2019/03/13
2.9K0
MVC中JSON字符长度超出限制的异常处理
使用 JSON JavaScriptSerializer 进行序列化或反序列化时出错。字符串的长度超过了为 maxJsonLength 属性设置的值。
sherlock99
2018/07/24
3.6K0
iOS输入框字符限制
小知识点记录,textField的markedTextRange的使用,如果你已经知道了,就不需要再看了。
莫空9081
2023/10/16
4610
正则表达式:匹配不包含某些字符和不包含某些字符串的写法「建议收藏」
发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/155140.html原文链接:https://javaforall.cn
全栈程序员站长
2022/09/06
6.2K0
限制字符串输入——正则表达式(VB.NET)
在做机房收费系统的时候,几乎所有的窗体上都存在着文本框或者组合框,当用户进行操作的时候,首先要判断是否为空,然后再对各种属性进行判断,比如;卡号、学号、金额等只能输入数字,有些信息只能输入字母,或者将一些信息的输入设为只能输入数字和字母。举个例子,我们注册邮箱的时候,就会有一些特定字符的设置:
令仔很忙
2018/09/14
1.8K0
限制字符串输入——正则表达式(VB.NET)
js判断是否是字符串_js正则表达式匹配字符串
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
全栈程序员站长
2022/11/08
5.8K0
linux 正则表达式匹配不包含某些字符串的技巧
经常我们会遇到想找出不包含某个字符串的文本,程序员最容易想到的是在正则表达式里使用,^(hede)来过滤”hede”字串,但这种写法是错误的。我们可以这样写:[^hede],但这样的正则表达式完全是另
葫芦
2019/04/17
8.7K0
linux shell:提取正则表达式捕获组(catch group)匹配的字符串
目前大部分shell(如bash)都提供了正则表达式判断操作符=~,如下就可以对一个字符符判断是否匹配正则表达式:
10km
2021/12/04
4.6K0
textField限制只能输入一定长度的字符
- (BOOL)textField:(UITextField )textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString )string; { //string就是此时输入的那个字符textField就是此时正在输入的那个输入框返回YES就是可以改变输入框的值NO相反 if ([string isEqualToString:@"\n"]) //按会车可以改变 { ret
用户7108768
2021/10/29
1.3K0
js判断是否包含指定字符串_js正则表达式匹配字符串
前言:有时候,我们在js中需要判断一个字符串中,是不是包含某个字符。可以采用以下方法进行判断。
全栈程序员站长
2022/11/08
2.9K0
Js限制空格和空字符串
isNull(content) { const reg = '^[ ]+$' const re = new RegExp(reg) return re.test(content) }, true为空 false为有输入值
明知山
2021/05/20
5.2K0
使用MySQL的rlike判断字符串是否匹配
表user_experience_wealth_log改名为user_experience_wealth_log_new,该表涉及若干存储过程。为了避免遗漏,需要确认所有相关过程都做了修改,验证方法为不存在包含user_experience_wealth_log的存储过程。
用户1148526
2020/04/30
1.7K0
PHPstudy修改上传文件限制大小限制的方法
越来越多的童鞋在使用PHPstudy来搭建网站, ,PHPstudy搭建php+mysql的网站还是非常不错的,主要就是可以随意切换php版本,但是不少童鞋在用php程序上传文件时候,默认限制的只能上传2M大小的文件,在这里说下如何修改这个上传限制大小。
用户1191760
2019/02/27
4.1K0
Java 中如何限制方法的返回时间
可以使用 JDK 中的 ExecutorService 方法来对调用的方法进行处理。
HoneyMoose
2023/02/10
3.1K0
Java 中如何限制方法的返回时间
iOS 判断字符串中是否有中文
//判断是否有中文 -(BOOL)IsChinese:(NSString *)str { for(int i=0; i< [str length];i++){ int a = [str characterAtIndex:i]; if( a > 0x4e00 && a < 0x9fff) { return YES; } } return NO; }</pre> 用法 if ([self PanDuan:@"aa!@#$%^&*(我)"]) {
用户8671053
2021/10/29
1.6K0
【正则】954- 正则表达式有几种字符匹配模式?
最近再一次重温老姚大佬的《JavaScript 正则表达式迷你书》 , 并将核心知识点整理一遍,方便复习。
pingan8787
2021/05/14
1.1K0
【正则】954- 正则表达式有几种字符匹配模式?
点击加载更多

相似问题

是否有一种方法可以限制音频捕获的持续时间?

12

输出是否有字符限制

30

jquery是否有字符限制?

11

是否有一种方法可以限制数组,但不限制数组的长度?

18

MySQL查询中是否有字符限制?

11
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文