if (preg_match("/\b1\b/i", "some content, paragraph 1")) {
echo "A match was found.";
} else {
echo "A match was not found.";
}
Где 1 - согласованный термин ...
Это любая помощь?
На этот вопрос сложно ответить, не зная, как вы планируете использовать код. При этом не так сложно создать новый turnContext, а также обойти processActivity (). Учитывая, как вы ссылаетесь на turnContext и processActivity (), я предполагаю, что вы используете Node SDK. Реализация в C # не будет слишком отличаться.
Вот два варианта, оба с использованием создания нового адаптера, однако, при желании, вы можете также передать уже установленный turnContext:
Вариант 1. В файле index.js вы захотите создать новый адаптер или сделать копию первого в зависимости от ваших потребностей:
const adapter = new BotFrameworkAdapter({
appId: endpointConfig.appId || process.env.MicrosoftAppId,
appPassword: endpointConfig.appPassword || process.env.MicrosoftAppPassword
});
const newAdapter = adapter;
или [ 1112]
const adapter = new BotFrameworkAdapter({
appId: endpointConfig.appId || process.env.MicrosoftAppId,
appPassword: endpointConfig.appPassword || process.env.MicrosoftAppPassword
});
const newAdapter = new BotFrameworkAdapter({
appId: endpointConfig.appId || process.env.MicrosoftAppId,
appPassword: endpointConfig.appPassword || process.env.MicrosoftAppPassword
});
Включите код onTurnError для отлова ошибок:
// Catch-all for errors.
adapter.onTurnError = async (context, error) => {
console.error(`\n [onTurnError]: ${ error }`);
await context.sendActivity(`Oops. Something went wrong!`);
};
// Catch-all for errors.
newAdapter.onTurnError = async (context, error) => {
console.error(`\n [onTurnError]: ${ error }`);
await context.sendActivity(`Oops. Something went wrong!`);
};
Затем установите новые адаптеры и создайте новый turnContext:
server.post('/api/messages', (req, res) => {
adapter.processActivity(req, res, async (turnContext) => {
await bot.onTurn(turnContext);
});
newAdapter.createContext(req, res);
});
Опции 2: В файле index.js, основанном на вышеприведенном коде, установите адаптеры для ожидания отдельных методов "onTurn":
// Listen for incoming requests.
server.post('/api/messages', (req, res) => {
adapter.processActivity(req, res, async (turnContext) => {
await bot.onTurn(turnContext);
});
newAdapter.processActivity(req, res, async (turnContext) => {
await bot.newOnTurn(turnContext);
});
});
В файле bot.js у вас будет два " onTurn "методы. В этом примере различные методы «onTurn» вызываются в зависимости от того, отправлено ли сообщение или я удаляю данные пользователя (я отправляю это событие через пункт меню Emulator => Conversation). То, что вы решите сопоставить, зависит от вас.
async newOnTurn(turnContext) {
if (turnContext.activity.type === ActivityTypes.DeleteUserData) {
const dc = await this.dialogs.createContext(turnContext);
await dc.context.sendActivity(`Looks like you deleted some user data.`);
}
}
async onTurn(turnContext) {
if (turnContext.activity.type === ActivityTypes.Message) {
const dc = await this.dialogs.createContext(turnContext);
await dc.context.sendActivity(`Looks like you sent a message.`);
}
}
Надежда на помощь!