javascript - 非贪婪地隔 ionic 字符串?

标签 javascript regex non-greedy

给定字符串,例如:

foo/**hello**/baré 
foo/crazy/**hello**/baré 
**hello**/crazy/baré

对于每一行,如何通过 JS 隔离 hello(** 之间的文本)?(正则表达式?搜索)

(每行想要的输出是 hello)

<小时/>

到目前为止,我失败了: .*?\*\*(.*?)\*\*.*? => $1 给了我:

hello/baré 
hello/baré 
hello/crazy/baré

最佳答案

您可以使用匹配除 * 之外的任何字符的表达式:

const inputs = [
  'foo/**hello**/baré',
  'foo/crazy/**hello**/baré',
  '**hello**/crazy/baré'
];

inputs.forEach(input => {
  const matches = input.match(/.*\*\*([^*]+)\*\*.*/);
  console.log(matches[1]);
});

关于javascript - 非贪婪地隔 ionic 字符串?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42559167/

相关文章:

regex - PostgreSQL 数字匹配正则表达式的奇怪行为

php - 正则表达式查找和替换 HTML 注释标签的内容

regex - 最小可能的匹配/非贪婪正则表达式搜索

JavaScript 全局变量作用域问题

javascript - 社交媒体图标之间的间距

javascript - 使用按钮的值而不是它的 id 通过 JavaScript 模拟按钮点击?

php - 我需要一个用另一个标签替换一个标签的 php 正则表达式

javascript - 如何从方法中的组件访问数据

javascript - 正则表达式问题模式不起作用

c++ - 使用正则表达式提取带引号和不带引号的值