Как насчет того, чтобы использовать регулярное выражение /#([\w]+\b)/gm
и соединить пробелом , как показано ниже, чтобы извлечь
#hastags
из вашей строки? ИЛИ Вы можете использовать str.replace(/\b#[^\s#]+/g, " [114]amp;")
, как прокомментировано @Wiktor
function findHashTags(str) {
var regex = /#([\w]+\b)/gm;
var matches = [];
var match;
while ((match = regex.exec(str))) {
matches.push(match[0]);
}
return matches;
}
let str1 = "#World is a #good #place to #live."
let str2 = "#World#place#live";
let res1 = findHashTags(str1);
let res2 = findHashTags(str2);
console.log(res1.join(' '));
console.log(res2.join(' '));
Так как Вы упомянули stdout.txt I google'd это для наблюдения то, что точно создаст stdout.txt; обычно, даже с Приложением Windows, консольный вывод переходит к выделенной консоли, или никуда если Вы не выделяетесь.
Так, принимая Вы используете SDL (который является единственной вещью, которая подняла stdout.txt), необходимо последовать совету здесь . Или freopen stdout и stderr с "ДОВОДОМ"ПРОТИВ"", или делают другие обходные решения компоновщика/компиляции там.
В случае, если связь разорвана снова, вот точно, на что сослались от libSDL:
, Как я стараюсь не создавать stdout.txt и stderr.txt?
"Я верю в проекте Visual C++, который идет с SDL существует цель SDL_nostdio>, можно создать, который делает то, что Вы хотите (ТМ)".
, "Если Вы определяете "NO_STDIO_REDIRECT" и перекомпилировали SDL, я думаю, что он решит проблему".>> (Любезность ответа Bill Kendrick)
Я предполагаю, что Вы используете некоторую версию Visual Studio? В окнах, std::cout << "something";
должен записать что-то в консоль, ЕСЛИ Ваша программа является установкой в настройках проекта как консольная программа.
Ваше приложение должно быть скомпилировано как консольное приложение Windows.
При использовании Visual Studio, необходимо изменить свойство проекта : Свойства Конфигурации -> Компоновщик -> Система -> SubSystem.
Это должно быть установлено на: Консоль (/SUBSYSTEM:CONSOLE)
Также необходимо изменить WinMain, чтобы быть этой подписью:
int main(int argc, char **argv)
{
//...
return 0;
}
Windows API function AllocConsole создаст консоль для Вашего приложения.
Прежде всего, какой компилятор или dev среда - Вы использование? Если Visual Studio, необходимо сделать проект консольного приложения произвести консоль.
112-секундный,
std::cout << "Hello World" << std::endl;
должен работать в любом консольном приложении на C++.
При использовании Visual Studio она должна работать просто великолепно!
Вот пример кода:
#include <iostream>
using namespace std;
int main (int) {
cout << "This will print to the console!" << endl;
}
Удостоверяются, что Вы выбрали консольное приложение Win32 при создании нового проекта. Тем не менее можно перенаправить вывод проекта в файл при помощи консольного переключателя (>>). Это на самом деле перенаправит консольный канал далеко от stdout до Вашего файла. (например, myprog.exe >> myfile.txt
).
я желаю, чтобы я не ошибался!
Если у Вас есть приложение ни-одних-консолей, можно создать консоль с функция AllocConsole. После того, как созданный, можно записать в него с помощью нормального станд.:: методы суда.
Whether to use subsystem:console or subsystem:windows kind of depends on whether how you want to start your application:
If you want the middle way which is to output to the terminal IF the application was started in a terminal, then follow the link that Luke provided in his solution (http://dslweb.nwnexus.com/~ast/dload/guicon.htm)
For reference, I ran into this problem with an application that I want to run in either normal Windows mode or batch mode (that is, as part of a script) depending on command-line switches. The whole differentiation between console and Windows applications is a bit bizarre to Unix folks!