В настоящее время ваше выражение Regex ищет две пары звездочек, «заключающих в скобки» группу из 0 или более элементов, отличных от звездочки (здесь у вас есть два раза, которые, как я считаю, являются избыточными в наборе, подобном этому). Это означает, что у вас никогда не будет '***' в начале соответствующей строки, потому что звездочка не может быть между двумя парами звездочек согласно вашему регулярному выражению.
Если вы определенно Если вы хотите сопоставить как можно больше символов в двух парах звездочек, вам нужно начать с того, чтобы убедиться, что вы не исключаете совпадения звездочек из центральной группы.
Отчасти проблема заключается в том, что вам нужно подумать о вашей логике c немного сложнее - почему это должно быть ***yo**
, когда **yo**
одинаково действителен (в обоих случаях строка начинается и заканчивается двумя звездочками, а во втором случае строка фактически начинается и заканчивается ТОЛЬКО две звездочки, так что можно утверждать, что это будет даже «лучшее» совпадение). Я не уверен, что логика c, которую вы считаете нужной, это логика c, которая вам действительно нужна.
https://regexr.com/ действительно полезна для тестирования и игры с выражениями Regex. пока вы не соответствуете фразу, которую вы хотите. * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *], Хотя бы на первый взгляд. (\*\*)([.\w\*]+)(\*\*)/g
, кажется, работает, но вам нужно будет проверить это больше.