此regexp匹配/ab之后的字符串.另外,我希望匹配/ab之后的空字符串.我怎么能做到这一点呢?先谢谢你.

const TelegramBot = require('node-telegram-bot-api');
const token = process.env.TOKEN;
const bot = new TelegramBot(token, { polling: true });

bot.onText(/\/ab (.+)/, (msg, match) => {
    const chatId = msg.chat.id
    const prompt = match[1]
    bot.sendMessage(chatId, prompt)
})

推荐答案

使用后视镜:/^(?![\s\S])|(?<=\/ab).*/g

后视(?<=)将匹配它前面的任何东西,而不包括在实际匹配中.至于返回空字符串,如果不匹配,则需要显式返回"".您可以更改此行:添加一个备用^(?!\[\s\S\])|

const rgx = new RegExp(/^(?![\s\S])|(?<=\/ab).*/, 'g');

const str = `/ab 1234 hdsso
/abksdfsioiowe
/ab
khbigigi7 
s366s7d /ab`;

let matches = [...str.matchAll(rgx)].flat();

console.log(matches);

Regex101

Javascript相关问答推荐

查找最长的子序列-无法重置数组

我正在建立一个基于文本的游戏在react ,我是从JS转换.我怎样才能使变量变呢?

如何在文本字段中输入变量?

不能将空字符串传递给cy.containes()

在Matter.js中添加从点A到另一个约束的约束

在数组中查找重叠对象并仅返回那些重叠对象

Reaction组件在本应被设置隐藏时仍显示

变量在导入到Vite中的另一个js文件时成为常量.

如何在FastAPI中为通过file:/URL加载的本地HTML文件启用CORS?

为什么我的按钮没有从&q;1更改为&q;X&q;?

如何为仅有数据可用的点显示X轴标签?

如何组合Multer上传?

Chrome上的印度时区名S有问题吗?

React数组查找不读取变量

对象作为react 子对象无效(已找到:具有键的对象{type,props}).如果要呈现一个子级集合,请改用数组

在Java脚本/类型脚本中覆盖父构造函数中的默认值

扩展更新所有输入的CSSprops 的函数

通过webContent发送数据时的空对象.发送

我不能在ANGLE项目中使用addEventListner添加方法

FromBody似乎没有处理C#API PUT调用,并且始终为空