Javascript Regex没有'我的字符串不匹配
Javascript Regex doesn't match with my String
我有以下字符串:
var resultLine= "[UT] - GSM incoming call : STEP 1 - Simulate reception from server (1)Rerun3713 msAssertion ok"
下面的代码负责检查与Regex匹配的字符串:
var resultRE = /^([ 'w-]*: )?(.+) '(('d+), ('d+), ('d+)')Rerun/;
var resultMatch = resultLine.match(resultRE);
if (resultMatch) {
return true;
} else {
return false;
}
在这种情况下,我的Regex中有一个错误,因为我总是得到"false"。我的错误在哪里?
根据您想要的内容,我推荐以下模式:
var resultRE = /^(['[ 'w']-]*: )(.+) '(([0-9, ]*)')Rerun(.*)$/
这将强制所有捕获组存在,即使它们是空的,并且将允许在Rerun
之前有多个数字,正如您所期望的那样。
这与字符串中的任何内容都不匹配
([ 'w-]*: )?
由于它是可选的,这并不重要,因为它会被包罗万象的捕获
(.+)
如果你试图将[UT]
部分与它的分隔符相匹配,它会看起来像这个
('['w+']['s'-]*)?
如注释中所述,括号中只有一个数字,但正则表达式需要三组数字,用逗号分隔。这将允许任何数量的数字,无限期地用逗号分隔(我不知道是否有限制)。
'(('d+,'s)*('d+)')
如果你需要更具体的东西,你必须更具体地说明你匹配的模板,而不是具体的案例。但我能想到的最好的是你提供的
^('['w']['s'-]*)?(.+)'(('d+,'w)*('d+)')Rerun
var resultRE = /'(('d+)(?:, ('d+))?(?:, ('d+))?')Rerun/;
if (resultRE.test(resultLine)) {
var num1 = RegExp.$1,
num2 = RegExp.$2,
num3 = RegExp.$3;
}
相关文章:
- Javascript 如何强制 string.replace 不将我的字符串解释为正则表达式
- 将特定的正则表达式模式与我的字符串匹配
- 函数将我的字符串更改为完全不同的值
- 如何检查我的字符串是否包含某些单词
- 如何让我的字符串替换为等于表单输入的值
- Javascript substring() 从我的字符串中返回错误的值
- 为什么我的字符串不是字符串
- 当我的字符串太长时,ParseFloat 的奇怪行为
- 如何编写正则表达式以匹配我的字符串
- encodeURIComponent 似乎在我的字符串中添加了一个字符
- 为什么“ 新字符串('我的字符串');“ 返回一个对象?但是“ 字符串(”我的字符串“);“返回一个字符
- 找到我的字符串所在的数组,并将其发送到变量javascript中
- 为什么我的字符串没有通过正则表达式
- Javascript Regex没有'我的字符串不匹配
- 为什么未定义会被添加到我的字符串中
- 如何获取已删除的字符并在文本区域内更新我的字符串
- Javascript函数将我的字符串参数视为整数
- JavaScript正在从我的字符串中删除反斜杠
- 为什么我的字符串只工作,当我把它手动
- 为什么我的字符串值可以通过淘汰验证,而整数值却不能