好的,这可能是一个简单的正则表达式,但我不熟悉它们。我有一堆像这样的字符串:'11 .9.2.1 Fusion'或'11 .9.1 Fusion'等......所有这些都在它们的末尾有'融合'。我试图找到只有三个句号(或四组数字)的句子。这是一些像我所拥有的伪代码:
$(xml).find("Asset").each(function(){
var projectName = $(this).find("Attribute[name='SecurityScope.Name']").text();
if(projectName.match(where-ive-been-putting-regex-statements)){
var patch = true;
}else{
var patch = false;
}
});
有什么想法吗?
答案 0 :(得分:4)
这样的东西? - /(\d+\.){3}\d+/
它匹配3组数字(至少1位数),后跟一个句号和第四个数字。
答案 1 :(得分:3)
这应该这样做:
\d+\.\d+\.\d+\.\d+\s+Fusion
匹配由文字点分隔的任意数字(一个或多个)的4组,后跟一个或多个空格,后跟文字字符串“Fusion”
匹配:11.9.2.1融合
但不符合:11.9.1 Fusion
答案 2 :(得分:2)
匹配'11 .9.2.1 Fusion'等字符串:
projectName.match(/^(\d+\.){3}\d+ Fusion$/)
答案 3 :(得分:1)
匹配包含三个句点的字符串的正则表达式将是
.*\..*\..*\..*
(根据您的正则表达式引擎是否提供“包含”式匹配,第一个和最后一个.*
可能是多余的。)
这里的关键部分是.
本身就是一个字符通配符,因此匹配任何。用反斜杠转义它会使它成为一个字面时间的匹配。
所以我们拥有的是(使用换行符进行解释)
.* // Match any character, any number of times. Then:
\. // Match a literal period. Followed by:
.* // Any character, any number of times. Followed by: (etc...)
答案 4 :(得分:1)
尝试:
[\d]+\.[\d]+\.[\d]+\.[\d]+ Fusion