0

この文字列は正規表現でチェックする必要があります...

<u>str<b>#u #bold<em>#u b #ital<strike>#u b em #ic stri</strike>ng</em>also(bold)</b></u><u>str<b>#u #boldalso(bold)</b></u>

これは正規表現です

[^.?]>#(.*?) #

一致は次の値に含まれている必要があります

<b>#u #
<em>#u b #
<strike>#u b em #
<b>#u #

しかし、一致しただけです

b>#u #
m>#u b #
e>#u b em #
b>#u #

なにが問題ですか?この表現部分を更新する必要があると思います

[^.?]
4

2 に答える 2

2

次の正規表現を使用します。

<\w+>#[^#]*#


編集: 式の説明:

  • <: < からマッチングを開始します
  • \w+: 1 つ以上の文字が続く
  • >: そして閉じる >
  • #: に続く #
  • [^#]*: これは # の直前に一致します
  • #: その後 #

それで

<\w+>#          [^#]*            #        Final Match
---------------------------------------------------------
'<b>#'          'u '            '#'     '<b>#u #'
'<em>#'         'u b '          '#'     '<em>#u b #'
'<strike>#'     'u b em '       '#'     '<strike>#u b em #'
'<b>#'          'u '            '#'     '<b>#u #'
于 2013-09-27T12:58:11.247 に答える
1

リプレイありがとうございます。

表現を修正しました

(<(\w+)>#([^#]*)#)

この(例)文字列

   <strike> #u #String:Underline-Strike-1<b>#u strike #String:Underline-Strike-Bold </b></strike><strike>#u #String:Underline-Strike-2</strike>

それはすべて一致しましたが、そうではありませんでした

 <strike> #u #String:Underline-Strike-1

">" の後の WHITESPACE が問題です...

正規表現を修正するには?

編集

わかりました、私は自分で解決策を見つけます

\s*

最後の

(<(\w+)>\s*#([^#]*)#)
于 2013-09-27T19:48:17.183 に答える