簡體   English   中英

刪除特定定界符內的所有空白

[英]Remove all white spaces inside specific delimiters

我正在嘗試處理包含格式錯誤的元素的xml文件。

錯誤形成的元素是不遵守以下模式的元素: <name attribute1=value1 attribute2=value2 ... attributeN=valueN>

可以有0到n個屬性。

結果, <my element number>無效,而<my element=number>無效。

這是我的文字樣本:

<product_name>
    A high wind in Jamaica <The innocent voyage>  The modern library of the world s best books   Books  Richard Arthur Warren Hughes
</product_name>

在這里, <product_name>是一個很好的元素,而<The innocent voyage>不是。

當發現不正確的元素時,我希望將<>替換為中性字符,例如+

由於包含這些標簽的文件很大(1.5 GB),所以我寧願不使用蠻力方法。

你們會看到一種快速(如果可能的話,優雅)的方法來解決這個問題嗎?

如您所言,您寧願遠離regex ,我也能夠創建以下不使用regex代碼(盡管我確信regex會非常有用)

def valid_tag(tag):
    temp = tag.split()
    for word in temp[1:]:
        if "=" not in word:
            return False
    return True

在這里,您將標簽作為字符串作為參數傳遞。 例如: "<hello test=test>"

您可以對每個標簽運行此測試,方法是創建另一種獲取標簽的方法,方法是先找到一個"<" ,然后是第一個">" ,然后從該字符串中創建子字符串,該子字符串將成為您傳遞給此方法的標簽。

注意:這假定您的標簽是這樣寫的: <hello test=test>而不是< hello test = test >

該方法仍然非常原始,並且如我上面所述做了一些假設,但希望它將為您提供所需的開始。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM