正则表达式。如何匹配“+”和“:”之间的值?

时间:2010-04-02 06:43:00

标签: javascript regex

我有这个字符串:

sometext +[value]:-  

我想匹配值(1-3个数字字符)(使用正则表达式,javascript)

如果我运气不好,某些文字可能包含+号,所以我不想最终匹配

some +text +value:-

昨晚我坐起来撞着这头,所以如果有人能帮助我,我会很高兴。

4 个答案:

答案 0 :(得分:2)

如果sometext包含+但不包含数字,则可以使用正则表达式:

\+\d{1,3}:-
  • \++是一个元字符,用来匹配a 文字+我们需要逃避它 \+
  • \d[0-9]的缩写,代表 一位数
  • {1,3}:量词与min=1max=3\d{1,3}匹配 数字为1,2和3位数
  • ::匹配冒号
  • -:匹配连字符,而不是连字符 char类外的meta char ......所以 不需要逃避。

答案 1 :(得分:0)

修改

如果像你在帖子中所说的那样(但不像你在帖子标题中说的那样)你需要匹配某些文字+ [值]: - :

var result = "sometext +[value]:-".match(/\+\[(.*)\]\:-/i)

结果:

result[0] = "+[value]:-"
result[1] = "value"

旧答案

"some +text +value:-".match(/\+.*-/i)

结果是+text +value:-。它将匹配+ ...中的所有内容......这里......-。

答案 2 :(得分:0)

尝试将匹配锚定到字符串的末尾:

/\+(\d{1,3}):-$/

答案 3 :(得分:0)

获取(多个)值作为数组:

var input = "some +text +value:- +another_value:-";
input.match(/(?!\+)(\w+)(?=:-)/g) // ["value", "another_value"]

如果只需要一个值,则获取字符串:

var input = "some +text +value:-";
input.match(/(?!\+)(\w+)(?=:-)/g)[0] // "value"