[英]regex splitting tags in the string
我有以下正則表達式(<.*?>.*?</.*?>|[\w[-]]+)\p{Punct}*
它適用於大多數帶標簽的字符串,但如果前面沒有標簽按空格,然后它會在找到匹配項時破壞標簽。
請幫助我修改此正則表達式,使其不會破壞標簽。 我所尋找的只是在空格上分割,但如果空間在標簽內,則不是。
例如:
BIRD-<abc attr="co_1">ab</span> @apos;<abc attr="co_12">cd</span>FEE DEF
應該分成:
BIRD-<abc attr="co_1">ab</span> @apos;<abc attr="co_12">cd</span>FEE DEF
我目前正在使用匹配器來匹配此模式並獲取令牌
Matcher matcher = REGEX.matcher(newString);
while (matcher.find())
{
token = matcher.group();
}
嘗試這個:
.*?<.*?>.*?</.*?>[^\s]*
它將產生您期望的結果。
我會警惕使用正則表達式執行這種類型的解析。 如果屬性包含 > 和/或 < 字符,您建議的模式以及它的各種改編可能會開始表現得很奇怪。 例如,以下示例會拋出您的模式。
<element attr="></>">value</element>
每當您需要解析或處理 XML 文件時,我建議您考慮使用適當的 XML 解析器。 請參閱此答案以獲得更長的解釋。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.