【正则表达式】不要写通配嵌套的正则表达式!
今天需要写一个正则表达式,想要匹配的是“只有非词字符和数字组成的字符串”
结果脑子一热不知道怎么想的,写成了:
“(\\W*\\d*)*”
然后在匹配一个比较长的字符串的时候:“1000200032900021464742105655200790_1.html”
不知道为啥程序竟然卡死了。
然后查了一下,哦,原因是,正则引擎要遍历所有的可能才能判定是否匹配,那么像我这样瞎嵌套通配符的写法导致可能的结果太多,面对长串引擎计算不完。
所以,我们要尽量避免写出嵌套通配符的正则表达式。
然后改成这样就OK了。。
“(\\W|\\d)*”
我是不是傻、、、
【正则表达式】不要写通配嵌套的正则表达式!的更多相关文章
-
HTML5数字输入仅接受整数的实现代码
这篇文章主要介绍了HTML5数字输入仅接受整数的实现代码,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
-
ios – 使用大写符号在字符串swift中获取URL的正则表达式
我尝试在文本中获取URL.所以,在此之前,我使用了这样一个表达式:但是当用户输入带有大写符号的URL时(例如Http://Google.com,它与它不匹配)我遇到了问题.我试过了:但什么都没发生.解决方法您可以使用正则表达式中的i内联标志关闭区分大小写,有关可用正则表达式功能的详细信息,请参阅FoundationFrameworkReference.(?ismwx-ismwx)Flagsetti
-
ios – Xcode只看到一些嵌套类的类似扩展,这些扩展是用不同的文件编写的
解决方法我遇到过类似的问题,似乎编译器正在尝试处理扩展嵌套类的文件,在嵌套类定义之前.因此,您有此错误说该Space没有成员SomeClass.我发现的解决方案是转到目标设置,打开BuildPhases.在“编译源”部分中,您应该将用于定义嵌套类的文件放在扩展它的文件上.这个解决方案似乎甚至可以很好地与您的观察结果一致,当您重新创建文件时,它有时会编译,因为当您重新创建文件时,它在编译源中的位置会发生变化.
-
ios – 如何在Swift 3中使用正则表达式?
解决方法我相信.当没有其他选项适用时,将使用.allZeros.因此,使用Swift3,您可以传递一个空的选项列表或省略options参数,因为它默认为无选项:要么请注意,在Swift3中,您不再使用error参数.它现在抛出.
-
ios – lldb断点在类目标c中的所有方法
如何使用lldb在ObjectiveC类中的所有方法上自动设置断点?
-
ios – 嵌套递归函数
我试图做一个嵌套递归函数,但是当我编译时,编译器崩溃.这是我的代码:编译器记录arehere解决方法有趣的…它似乎也许在尝试在定义之前捕获到内部的引用时,它是bailing?以下修复它为我们:当然没有嵌套,我们根本没有任何问题,例如以下工作完全如预期:我会说:报告!
-
ios – 在swift中将捕获列表正确放置在嵌套闭包中
在Swift中为哪些嵌套闭包定义捕获的引用?如果[weakself]被捕获在只有内部最后面的闭包,GCD将保留ExampleDataSource,直到块完成执行,这就解释了为什么调试看起来像这样:同样的事情会发生,如果没有捕获列表被包括,我们从来没有可选地解开自己,尽管编译器,确实试图警告你!
-
ios – 无效的软件包 – 嵌套软件包没有在CFBundleSupportedPlatforms Info.plist键中列出的正确平台
我上传了一个应用程序到iOSAppStoretestflight.iOSAppStore收到以下电子邮件:InvalidBundle–Anestedbundledoesn’thavetherightplatformslistedinCFBundleSupportedplatformsInfo.plistkey.Oncetheseissueshavebeencorrected,youcanthenr
-
ios – 如何在使用嵌套上下文时自动设置Core Data关系
解决方法想到的第一个想法是,虽然姓名的人际关系是不可选的,但你并没有说Person的姓名关系也是不可选的.创建一个没有名字的人,可以用您的代码处理,然后在实际需要时创建名称吗?当然不用打扰自定义awakeFromInsert…
-
什么是我的iOS配置门户中的(Xcode:通配符AppID)?
突然之间,我在我的中看到了一个新的AppID,其中包含的描述,Apple最近是否添加了它?此应用程序没有(配置)链接,只有链接,我无法配置任何东西!问候解决方法Xcode现在可以自动创建配置文件,因此您不必这样做.此通配符应用程序ID是该配置文件的一部分.
随机推荐
-
法国电话号码的正则表达式
我正在尝试实施一个正则表达式,允许我检查一个号码是否是一个有效的法国电话号码.一定是这样的:要么:这是我实施的但是错了……
-
正则表达式 – perl分裂奇怪的行为
PSperl是5.18.0问题是量词*允许零空间,你必须使用,这意味着1或更多.请注意,F和O之间的空间正好为零.
-
正则表达式 – 正则表达式大于和小于
我想匹配以下任何一个字符:或=或=.这个似乎不起作用:[/]试试这个:它匹配可选地后跟=,或者只是=自身.
-
如何使用正则表达式用空格替换字符之间的短划线
我想用正则表达式替换出现在带空格的字母之间的短划线.例如,用abcd替换ab-cd以下匹配字符–字符序列,但也替换字符[即ab-cd导致d,而不是abcd,因为我希望]我如何适应以上只能取代–部分?
-
正则表达式 – /bb | [^ b] {2} /它是如何工作的?
有人可以解释一下吗?我在t-shirt上看到了这个:它似乎在说:“成为或不成为”怎么样?我好像没找到’e’?
-
正则表达式 – 在Scala中验证电子邮件一行
在我的代码中添加简单的电子邮件验证,我创建了以下函数:这将传递像bob@testmymail.com这样的电子邮件和bobtestmymail.com之类的失败邮件,但是带有空格字符的邮件会漏掉,就像bob@testmymail也会返回true.我可能在这里很傻……当我测试你的正则表达式并且它正在捕捉简单的电子邮件时,我检查了你的代码并看到你正在使用findFirstIn.我相信这是你的问题.findFirstIn将跳转所有空格,直到它匹配字符串中任何位置的某个序列.我相信在你的情况下,最好使用unapp
-
正则表达式对小字符串的暴力
在测试小字符串时,使用正则表达式会带来性能上的好处,还是会强制它们更快?不会通过检查给定字符串的字符是否在指定范围内比使用正则表达式更快来强制它们吗?
-
正则表达式 – 为什么`stoutest`不是有效的正则表达式?
isthedelimiter,thenthematch-only-onceruleof?PATTERN?
-
正则表达式 – 替换..与.在R
我怎样才能替换..我尝试过类似的东西:但它并不像我希望的那样有效.尝试添加fixed=T.
-
正则表达式 – 如何在字符串中的特定位置添加字符?
我正在使用记事本,并希望使用正则表达式替换在字符串中的特定位置插入一个字符.例如,在每行的第6位插入一个逗号是什么意思?如果要在第六个字符后添加字符,请使用搜索和更换从技术上讲,这将用MatchGroup1替换每行的前6个字符,后跟逗号.