必须使用正则表达式检查此字符串...
<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 #
有什么不对?我认为这个表达式部分必须更新
[^.?]
答案 0 :(得分:2)
使用以下正则表达式:
<\w+>#[^#]*#
修改:
表达式的解释:
<
:它从&lt; \w+
:后跟一个或多个字母>
:然后关闭&gt; #
:后跟#[^#]*
:这将在##
:然后#所以
<\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 #'
答案 1 :(得分: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
“&gt;”之后的WHITESPACE是问题...
如何修复正则表达式?
修改强>
好的,我自己找到解决方案
\s*
最终
(<(\w+)>\s*#([^#]*)#)