我有这个字符串:
sometext +[value]:-
我想匹配值(1-3个数字字符)(使用正则表达式,javascript)
如果我运气不好,某些文字可能包含+号,所以我不想最终匹配
some +text +value:-
昨晚我坐起来撞着这头,所以如果有人能帮助我,我会很高兴。
答案 0 :(得分:2)
如果sometext
包含+
但不包含数字,则可以使用正则表达式:
\+\d{1,3}:-
\+
:+
是一个元字符,用来匹配a
文字+
我们需要逃避它
\+
\d
:[0-9]
的缩写,代表
一位数{1,3}
:量词与min=1
和
max=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"