Я не уверен, что вы можете использовать что-то вроде (^|\s)
и (\s|$)
, во-первых - может быть, вы можете, но мне нужно поблагодарить, чтобы понять регулярное выражение - и это никогда не бывает хорошо, когда кто-то должен думать, чтобы понять регулярное выражение: это часто слишком сложно: - (
Если вы хотите сопоставить слова, начинающиеся с «mso», будь то прописные или строчные буквы, я бы, вероятно, использовал что-то вроде этого:
"class1 MsoClass2\tmsoclass3\t MSOclass4 msoc5".match(/\s?(mso[^\s]*)\s?/ig);
Что тебя достает:
[" MsoClass2 ", "msoclass3 ", " MSOclass4 ", "msoc5"]
Что (почти: есть пара отличий между пробелами), что вы спросили.
Или еще проще:
"class1 MsoClass2\tmsoclass3\t MSOclass4 msoc5".match(/(mso[^\s]*)/ig);
Что тебя достает:
["MsoClass2", "msoclass3", "MSOclass4", "msoc5"]
Без пропусков.
Также легче читать / понимать; -)