Комментированная строка Cells(iRow + 1, cCol).Interior.ColorIndex = 3
добавляет красный цвет в первую ячейку добавленной строки, что очень помогает при попытке выяснить такой код. [ 117]
Sub AddBlankRows()
Const cCol As Variant = "A"
Const cFirstR As Long = 1
Dim LastR As Long
Dim iRow As Long
LastR = Cells(Rows.Count, cCol).End(xlUp).Row
iRow = cFirstR
Do
If Cells(iRow, cCol) <> "" And Cells(iRow + 1, cCol) <> "" Then
If Cells(iRow, cCol) <> Cells(iRow + 1, cCol) Then
Cells(iRow + 1, cCol).EntireRow.Insert xlShiftDown
'Cells(iRow + 1, cCol).Interior.ColorIndex = 3
LastR = LastR + 1
End If
End If
iRow = iRow + 1
Loop Until iRow > LastR
End Sub
Sub AddBlankRows2()
Const cCol As Variant = "A,C"
Const cFirstR As Long = 1
Dim vnt As Variant
Dim LastR As Long
Dim iRow As Long
Dim i As Long
vnt = Split(cCol, ",")
For i = 0 To UBound(vnt)
LastR = Cells(Rows.Count, vnt(i)).End(xlUp).Row
iRow = cFirstR
Do
If Cells(iRow, vnt(i)) <> "" And Cells(iRow + 1, vnt(i)) <> "" Then
If Cells(iRow, vnt(i)) <> Cells(iRow + 1, vnt(i)) Then
Cells(iRow + 1, vnt(i)).EntireRow.Insert xlShiftDown
'Cells(iRow + 1, vnt(i)).Interior.ColorIndex = i + 3
LastR = LastR + 1
End If
End If
iRow = iRow + 1
Loop Until iRow > LastR
Next
End Sub
Это, кажется, работает...
c#
Regex MyRegex = new Regex("\\#\\w+");
MatchCollection ms = MyRegex.Matches(InputText);
или vb.net
Dim MyRegex as Regex = new Regex("\#\w+")
Dim ms as MatchCollection = MyRegex.Matches(InputText)
Учитывая входной текст...
"asdfas asdf #asdf asd фас df asd фас #df asd f asdf"
... это уступит....
"#asdf" и "#df"
Я предоставлю Вам, что это не получает Вас, массив строк, но MatchCollection является счетным и быть достаточно хорошим - также.
Кроме того, я добавлю, что получил это с помощью Экспресса. который, кажется, свободен. Это было очень полезно в создании c#, в котором я очень беден. (Т.е. это сделало выход для меня.) (Если кто-либо думает, что я должен удалить это псевдообъявление затем, прокомментировать, но я думал, что это могло бы быть полезно :) Хорошие времена)
Так как Вы хотите включать слова в разделение, необходимо использовать что-то как
"\b#\w+\b"
Это включает фактическое слово там в выражение. Однако я не уверен, что это - то, что Вы хотите. Вы могли обеспечить пример входа и желаемого вывода?
Использование PHP's preg_match_all()
:
$text = 'Test #string testing #my test #text.';
preg_match_all('/#[\S]+/', $text, $matches);
echo '<pre>';
print_r($matches[0]);
echo '</pre>';
Выводы:
Array ( [0] => #string [1] => #my [2] => #text. )
Вот код в JavaScript:
text = "what #regEx can I use to #split a #string into whole words but only"
// what #regEx can I use to #split a #string into whole words but only"
text.match(/#\w+/g);
// [#regEx,#split,#string]
В Microsoft regex ароматы, Попытка: "\#:w"
Это работало на меня, использование Находит в Visual Studio. Я не знаю, как это переведет в класс Regex.
Править: Обратную косую черту глотали.