Swift 4.4
Я хочу создать NSAttributedString
, используя NSRegularExpression
~This two~ are *bold text* and different <textcolor> and ~strikethrough~ and _italic (word*)_ ~abc~
Похоже на это,
![enter image description here](https://i.stack.imgur.com/iFRcJ.png)
Я могу создавать и назначать атрибуты, но проблема в том, что я не знаю, как использовать NSRegularExpression
, но я попробовал много логики с помощью статьи rayenderlich .
Некоторые логики, которые я до сих пор пробовал.
(1) "(^|\\s|\\b)*(\\S).*(\\S)*($|\\s|\\b)"
(2) "(\\~(.*?)\\~)"
(3) "\\sand\\b"
(4) "(?:^|\\s|$)#[\\p{L}0-9_]*"
(5) "(?:^\\s+)|(?:\\s+$)"
Мне нужен всего один шаблон bold
или italic
или strikethrough
UPDATE
Дело 1:
let string = "~This two~ are *bold text* and different <textcolor> and ~strikethrough~ and _italic (word*)_ ~abc~"
let pattern = "((^|)~(.*?)(\\S+)~($|\\s))"
Выход ниже,
Pattern: ((^|)~(.*?)(\S+)~($|\s))
~This two~
~strikethrough~
~abc~
Дело 2:
let string = "~This two~ are *bold text* and different <textcolor> and ~strikethrough~ and _italic (word*)_ ~abc~"
let pattern = "((^|)~(.?)(\\S+)~($|\\s))" //here '*' removed
Выход ниже,
Pattern: ((^|)~(.?)(\S+)~($|\s))
~strikethrough~
~abc~
Заранее спасибо.
ОБНОВЛЕНИЕ 2
я нашел ответ,