Tag: 正则expression式

正则expression式匹配困难

我目前的正则expression式: ([\d]*)([^\d]*[\d][az]*-[\d]*)([\d][az?])(.?) 所以我试图使正则expression式匹配一个string基于:计数,可以是任何数量的数量从0至100万,然后是一个数字,然后有时一个字母然后 – 然后任何数字的数字后跟相同的数字,有时一封信,有时一封信。 它应该匹配的string的例子: 1921-1220104081741b 192123212a-1220234104081742ab 一个基于上面应该返回的例子(这是两个例子,它不应该读两条线)。 (192) (1-122010408174) (1) (b) (19212321) (2a-122023410408174) (2a) (b) 我当前的正则expression式和第二个正则expression式一样,但是当我希望它返回(1)(b)时,返回(1b),而在第二个情况下返回(2a),或者返回 1926h-1220104081746h Should Return: (192) (6h-122010408174) (6h) 不是100%肯定,如果可能的话,我觉得我是相当新的正则expression式。 作为参考,我在excel-vba中做这个,如果还有其他方法可以做到这一点的话。

如何在excel中查找和replace正则expression式

我有1列和多行的Excel文件。 行包含各种文本,这里是一个例子: texts are home texts are whatever dafds dgretwer werweerqwr texts are 21412 texts are 346345 texts are rwefdg terfesfasd rwerw 我想用“特定单词”代替“文本是*”,其中*是“文本是”之后的任何内容,例如“文本被replace”。 我如何在Excel中做到这一点?

Excel VBA正则expression式匹配位置

如何在正则expression式中获取第一个匹配结果的位置? 见下文。 Function MYMATCH(strValue As String, strPattern As String, Optional blnCase As Boolean = True, Optional blnBoolean = True) As String Dim objRegEx As Object Dim strPosition As Integer ' Create regular expression. Set objRegEx = CreateObject("VBScript.RegExp") objRegEx.Pattern = strPattern objRegEx.IgnoreCase = blnCase ' Do the search match. strPosition = objRegEx.Match(strValue) MYMATCH = strPosition End […]

Microsoft Excel中的正则expression式子stringreplace

我想用国际版“447”批量replacestring列表中的“07”部分(手机号码)。 当前string列表在Excel电子表格中形成一个列。 我有正则expression式来匹配需要修改的string: ^07[0-9]{9}$ …但我不知道如何做replace,我需要。 数据在Excel电子表格中,但当然可以导出。 首选的解决scheme是将数据保存在Microsoft Excel中,但是它当然可以导出然后重新导入。 我知道TextMate具有正则expression式replacefunction。 这可以帮助我吗?

如何开发包含正则expression式的Excelmacros,以便在Windows和Mac中使用

我开发了一个使用VBScript.RegExp的Excel 2010 VBAmacros。 我的一个用户显然使用支持VBA的Excel Mac 2011,但没有VBScript.RegExp 。 我已经看到了几个职位,提到可以使用AppleScript创build自己的RegEx函数,可以由VBAmacros调用。 但是,似乎必须有一个Mac版本的Excel文件和一个Windows版本。 这并不理想。 有没有另外一种方法可以在Windows和Mac兼容的VBA中实现正则expression式?

什么是最快的方法来转换arrays字母数字的每个成员?

最后的最终结果: 我想知道下面的结果是否改变,如果string更长。 我在同一台计算机上运行完全相同的testing,除了每个单元有一个34个字符的随机string,而不是四个。 这是结果: Comintern (Regexp): 136.1 ms brettdj (Regexp): 139.9 ms Slai (Regexp): 158.4 ms *Original Regex: 161.0 ms* Comintern (AN): 170.1 ms Comintern (Hash): 183.6 ms ThunderFrame: 232.9 ms *Original replace: 372.9 ms* *Original InStr: 478.1 ms* CallumDA33: 1218.1 ms 这真正显示了正则expression式的速度 – 使用Regex.replace的所有解决scheme都显着加快,最好的是实现了共产国际。 总之,如果string很长,使用数组,如果它们很短,则使用剪贴板。 如果不确定,最好的结果是使用数组,但是这可能会牺牲短string的一些性能。 最终结果: 非常感谢您的build议,显然我还有很多东西要学。 我昨天一直在想这个,所以我决定在家里重新运行一切。 这是最后的结果,基于将其中的每一个应用到三万四个字符的string。 我家里的电脑是英特尔i7 @ 3.6 GHz,8GB内存,64位Windows […]

在Excel中分割大写单词

我想用大写字母将单元格中的所有单词分开,例如: 原始值: MikeJones RinaJonesJunior MichealSamuelsLurth 预期产出: Mike Jones Rina Jones Junior Micheal Samuels Lurth 这可以做到不使用VBA?

如何通过函数或自定义函数获得excel中的正则expression式支持?

似乎正则expression式(如在正则expression式中)不支持在Excel中,除了通过VBA。 这是如此,如果是的话,是否有任何支持正则expression式的“开源”自定义VBA函数。 在这种情况下,我正在寻找提取一个string内的复杂模式,但任何暴露在函数本身的正则expression式支持的自定义VBA函数的实现将是有用的。 如果你知道像IS函数这样的半相关函数,那么感觉要评论一下,尽pipe我真的在寻找一个通过函数公开的完整的正则expression式实现。 如果执行情况良好的话,甚至可以开始使用加载项。 另外,请注意,我在Windows 7上使用Office 2010; 添加此信息似乎是一个伟大的build议,而不是在Office 2010上工作的答案。 如果您有任何疑问,请发表评论。