我试图将字符串的起始字符和结束字符匹配为同一个元音。我的正则表达式在大多数情况下都能工作,但在其他情况下会失败:
var re = /([aeiou]).*\1/;
re.test(str);
样本输入:
abcde
,输出-false(有效)abcda
,输出-true(有效)aabcdaa
,输出为true(有效)aeqwae
,输出-true(无效)ouqweru
,输出-true(无效)上面已经提到了正确答案,只是为了进一步澄清:
regEx= /^([a,e,i,o,u])(.*)\1$/
这里,\1
是再次匹配相同文本的反向引用,您可以多次重复使用相同的反向引用。大多数正则表达式支持多达99个捕获组和两位数的反向引用。因此,如果您的正则表达式有99个捕获组,\99是一个有效的反向引用。详细信息请访问\u
只是我为了好玩而写的@Hristiyan Dodov答案的另一个版本。
js lang-js prettyprint-override">regex = /^(a|e|i|o|u).*\1$/
const strings = ['abcde', 'abcda', 'aabcdaa', 'aeqwae', 'ouqweru']
strings.forEach((e)=>{
const result = regex.test(e)
console.log(e, result)
})
您需要将锚添加到字符串中。
如果您有,例如:
aeqwae
您说输出为true,但它无效,因为a
与e
不同。好的,正则表达式只是匹配上一个字符(在e
之前),即a
。因此,匹配是有效的。所以,你得到了这个:
[aeqwa]e
括号中包含的字符串是实际匹配项,以及它返回true
的原因。
如果将正则表达式更改为:
/^([aeiou]).*\1$/
通过添加^
,您告诉它匹配的开始必须是字符串的开始,通过添加$
您告诉它匹配的结束必须是字符串的结束。这样,如果存在匹配,则整个字符串必须匹配,这意味着aeqwae
将不再匹配。
测试regex的一个很好的工具是Regex101。给它一个尝试!
注意:根据您的输入,您可能需要设置全局(g)或多行(m)标志。全局标志阻止正则表达式在第一次匹配后返回。多行标志使^
和$
匹配行的开始和结束(而不是字符串)。我在使用您的输入进行测试时使用了它们。
问题内容: 我在尝试将我的javascript regex经验转移到Python时遇到了麻烦。 我只是想让它工作: …但是它打印无。如果我做: 它匹配…默认情况下是否匹配字符串的开头?当匹配时,如何使用结果? 我如何进行第一场比赛?是否有比python网站提供的文档更好的文档? 问题答案: 隐式添加到您的正则表达式的开头。换句话说,它仅在字符串的开头匹配。 将在所有位置重试。 一般来说,建议您在需
问题内容: 我在用Python将字符串中的数字匹配时遇到麻烦。尽管应该明确匹配,但甚至不匹配 或仅匹配。我的监督在哪里? 问题答案: 阅读文档:http : //docs.python.org/2/library/re.html#re.match 如果在零个或多个字符 开头 的 字符串 您要使用(或)
字符串可以说是程序设计中最为重要的数据类型之一。几乎每种高级编程语言都有它的一席之地,而且能有效的使用它也是开发者编写实用程序的基本准则。作为重要的扩展,正则表达式赋予开发者操作字符串的额外能力。ECMAScript 6 的缔造者们将这些事实牢记于心,改进了字符串和正则表达式,并添加了长久以来缺失的某些功能。本章会讲解它们的变化之处。 译者注: gitbook 无法正常解析 $$ 字符,所以在模板
问题内容: 我有一个输入字符串。 我正在考虑如何有效地将此字符串与多个正则表达式匹配。 我想针对这些正则表达式模式进行匹配,如果其中至少一种匹配则返回: 我不确定如何一次匹配多种模式。有人可以告诉我我们如何有效地做到这一点吗? 问题答案: 如果只有几个正则表达式,并且在编译时都知道它们,那么这就足够了: 如果它们更多,或者它们在运行时加载,则使用模式列表:
我有一个包含数千行的文本文件。这里有一个例子 我试图提取'nt60'、'nt50'末尾的字符串。 问题是会包含行尾字符() 我想使用正则表达式搜索来匹配从 (') 开始的字符串,但我不知道我应该用什么来匹配 。 有人能帮忙吗?
相比较于第一章变量的声明,这一章的内容有了一点深度提升,但还不至于很难理解。本章主要讲2个知识点,字符串、正则表达式 字符串 字符串(String)是JavaScript6大原始数据类型。其他几个分别是Boolean、Null、Undefined、Number、Symbol(es6新增)。 字符串类型在前端开发者,是使用最频繁的类型之一,网站上可见的各种文案,几乎都是字符串类型的数据。我们经常需要