Tag: expression式

如何在MySQL中进行正则expression式replace?

我有一个约500k行的桌子; varchar(255)UTF8列的filename包含一个文件名; 我试图从文件名中去除各种奇怪的字符 – 以为我会用字符类: [^a-zA-Z0-9()_ .\-] 现在, MySQL中有一个函数可以让你通过正则expression式来replace吗? 我正在寻找与REPLACE()函数类似的function – 简单的例子如下: SELECT REPLACE('stackowerflow', 'ower', 'over'); Output: "stackoverflow" /* does something like this exist? */ SELECT X_REG_REPLACE('Stackoverflow','/[A-Zf]/','-'); Output: "-tackover-low" 我知道REGEXP / RLIKE ,但那些只检查是否有匹配,不匹配什么 。 (我可以从一个PHP脚本做一个“ SELECT pkey_id,filename FROM foo WHERE filename RLIKE '[^a-zA-Z0-9()_ .\-]' ”,做一个preg_replace然后“ UPDATE foo … WHERE pkey_id=… “,但看起来像是最后一UPDATE foo … WHERE pkey_id=…缓慢和丑陋的黑客)

如何访问JavaScript正则expression式中的匹配组?

我想用一个正则expression式来匹配string的一部分,然后访问那个被括起来的子string: var myString = "something format_abc"; // I want "abc" var arr = /(?:^|\s)format_(.*?)(?:\s|$)/.exec(myString); console.log(arr); // Prints: [" format_abc", "abc"] .. so far so good. console.log(arr[1]); // Prints: undefined (???) console.log(arr[0]); // Prints: format_undefined (!!!) 我究竟做错了什么? 我发现上面的正则expression式代码没有错:我testing的实际string是这样的: "date format_%A" 报告“%A”未定义似乎是一个非常奇怪的行为,但它不是直接关系到这个问题,所以我打开了一个新的, 为什么匹配的子string在JavaScript中返回“undefined”? 。 问题是, console.log的参数就像一个printf语句,由于我logging的string( "%A" )有一个特殊的值,它试图find下一个参数的值。

为什么`a == b或c或d`总是评估为真?

我正在写一个安全系统,拒绝未经授权的用户访问。 import sys print("Hello. Please enter your name:") name = sys.stdin.readline().strip() if name == "Kevin" or "Jon" or "Inbar": print("Access granted.") else: print("Access denied.") 它按预期授予授权用户的访问权限,但也允许未经授权的用户使用! Hello. Please enter your name: Bob Access granted. 为什么会发生? 我明白表示,只有当name等于Kevin,Jon或Inbar时才允许访问。 我也尝试了相反的逻辑, if "Kevin" or "Jon" or "Inbar" == name ,但结果是一样的。

为什么带有全局标志的RegExp会给出错误的结果?

当我使用全局标志和不区分大小写的标志时,这个正则expression式有什么问题? 查询是用户生成的input。 结果应该是[true,true]。 var query = 'Foo B'; var re = new RegExp(query, 'gi'); var result = []; result.push(re.test('Foo Bar')); result.push(re.test('Foo Bar')); // result will be [true, false] var reg = /^a$/g; for(i = 0; i++ < 10;) console.log(reg.test("a"));

你能提供一些为什么很难用正则expression式来parsingXML和HTML的例子吗?

我看到人们一遍又一遍的错误是试图用正则expression式来parsingXML或HTML。 以下是parsingXML和HTML的一些原因: 人们希望将文件视为一系列的行,但这是有效的: <tag attr="5" /> 人们希望将<或<标签作为标签的开头,但是像这样的东西存在于野外: <img src="imgtag.gif" alt="<img>" /> 人们通常希望匹配起始标签到结束标签,但XML和HTML允许标签包含自己(传统的正则expression式根本无法处理): <span id="outer"><span id="inner">foo</span></span> 人们通常希望匹配一个文档的内容(比如着名的“查找给定页面上的所有电话号码”问题),但数据可能被标记(即使在查看时看起来是正常的): <span class="phonenum">(<span class="area code">703</span>) <span class="prefix">348</span>-<span class="linenum">3020</span></span> 评论可能包含格式不完整或不完整的标签: <a href="foo">foo</a> <!– FIXME: <a href=" –> <a href="bar">bar</a> 你还知道什么其他的陷阱?

如何在Microsoft Excel中使用正则expression式(正则expression式)在单元格内和循环中

如何在Excel中使用正则expression式并利用Excel的强大网格(如设置数据操作)? 在单元格函数返回匹配的模式或replacestring中的值。 Sub循环访问一列数据并提取与相邻单元格的匹配。 什么设置是必要的? 什么是Excel正则expression式的特殊字符? 我知道正则expression式在许多情况下( 使用或不使用正则expression式? )并不理想,因为excel可以使用Left , Mid , Right , Instrtypes命令进行类似的操作。

什么是非捕获组? 问号跟一个冒号(?:)是什么意思?

读了一些教程后,我仍然不明白。 有人可以解释一下?:是用来做什么的?

正则expression式模式不匹配string中的任何位

我试图匹配使用这种模式的<input>types“隐藏”字段: /<input type="hidden" name="([^"]*?)" value="([^"]*?)" />/ 这是样本表单数据: <input type="hidden" name="SaveRequired" value="False" /><input type="hidden" name="__VIEWSTATE1" value="1H4sIAAtzrkX7QfL5VEGj6nGi+nP" /><input type="hidden" name="__VIEWSTATE2" value="0351118MK" /><input type="hidden" name="__VIEWSTATE3" value="ZVVV91yjY" /><input type="hidden" name="__VIEWSTATE0" value="3" /><input type="hidden" name="__VIEWSTATE" value="" /><input type="hidden" name="__VIEWSTATE" value="" /> 但我不确定type , name和value属性总是以相同的顺序出现。 如果type属性是最后一个,那么匹配就会失败,因为在我的模式中它是在开始的时候。 题: 我怎样才能改变我的模式,所以它会匹配,而不pipe在<input>标签中的属性的位置? PS:顺便说一下,我正在使用基于Adobe Air的RegEx桌面工具来testing正则expression式。

我的正则expression式匹配得太多了。 我如何使它停止?

J0000000: Transaction A0001401 started on 8/22/2008 9:49:29 AM J0000010: Project name: E:\foo.pf J0000011: Job name: MBiek Direct Mail Test J0000100: Machine name: DEV J0000100: Project file: E:\mbiek\foo.pf J0000100: Template file: E:\mbiek\foot.xdt J0000100: Job name: MBiek J0000100: Output folder: E:\foo\A0001401 J0000100: Temp folder: E:\foo\Output\A0001401 J0000100: Document 1 – Starting document J0005000: Document 1 – Text overflowed […]

使用正则expression式来parsingHTML:为什么不呢?

这似乎是每个问题在提交者正在使用正则expression式从HTML获取一些信息将不可避免地有一个“答案”,说不使用正则expression式来parsingHTML。 为什么不? 我知道那里有像“ 美味汤 ”这样的引用不引人注目的“真正的”HTMLparsing器,我相信它们是强大而有用的,但是如果你只是在做一些简单,快速或肮脏的事情,那么为什么打扰一些正则expression式可以正常工作的时候使用这么复杂的东西? 此外,是否有一些基本的东西,我不明白正则expression式,使他们通常是一个不好的selectparsing?