javascript - 正则表达式:检索重复字符串后的数字

标签 javascript regex

假设我有一个字符串:

\foo\junk\f0\morejunk\

如何使用正则表达式从中提取“f0”?我本质上只想匹配一个“f”后跟一个数字,而不会被以“f”开头但后跟一个数字的字符串捕获。

我尝试过以下方法:

(?<=f)(\d*)

但这会卡在字符串“foo”中的第一个“f”上,并且与“f0”的后一个情况不匹配。如何在 lookbehind 上放置量词以匹配我想要的字符串?

另一种选择可能是用“\”分隔符分割字符串并尝试匹配每个分割,但这似乎没有必要?

最佳答案

JavaScript 正则表达式不支持向后查找。您可以使用捕获组。还可以使用 + 而不是 *,因为 * 匹配 0 或更多字符,而 + 匹配 0 或更多字符> 将匹配一个或多个前面的字符。

var str='\\foo\\junk\\f0\\morejunk\\';
var res=str.match(/\\f(\d+)\\/)[1];
alert(res);

更新:如果您想匹配整个字符串,则只需使用 /f\d+/ 无需捕获组

var str='\\foo\\junk\\f0\\morejunk\\';
var res=str.match(/\\(f\d+)\\/)[1];
alert(res);

关于javascript - 正则表达式:检索重复字符串后的数字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33649172/

相关文章:

java - 检查char是否在() block 中

java - 如何替换子串的每个索引

regex - VBA 使用正则表达式查找具有值范围的字符串,并替换为该范围内的每个值

javascript - 为什么 ng-show 无法正常工作?

javascript - 访问属性 'toString' 的权限被拒绝

javascript - 取消选择控件的 onchange 事件的传播

javascript - IE 循环时出错

python - 删除特定单词后的所有单词

regex - R 正则表达式 : Parenthesis Not Acting as Metacharacter

javascript - 如何提取嵌套对象数组中 'enabled' 对象的路径