我發現了一些數據,其中包括"u0627u0644u0649 u0627u0644u0623". 通常,這些更像\u0627\u0644\u0649 \u0627\u0644\u0623是數據出現問題。為了糾正它,我唯一的選擇是調整那里的內容。"u0627u0644u0623 u0644 u0627"我還沒有發現字符串是“普通單詞”和“普通單詞”的組合的任何情況,但這可能會發生。我還想"\u0627\u0644"安全地轉換任何類似的東西或其組合,以便像“我的字符串”這樣的字符串\u0627\u0644 u0627u0644u0623 u0644 u0627."將被正確轉換。誰能推薦一個正則表達式或適當的方法來安全地“修復”這些字符串?更新如果我們只更正我們第一次測試的字符串以確保它只包含類似的字符串u0627u0644u0649 u0627u0644u0623怎么辦?這可以安全地(以及如何)完成嗎?現在,我正在使用^(u[A-Fa-f0-9]{4}\s?)+$我的正則表達式足以滿足所需的目的。我也同意可能沒有保證的解決方案,但到目前為止這似乎在我的測試用例中有效。
1 回答

哈士奇WWW
TA貢獻1799條經驗 獲得超6個贊
該^(u[A-Fa-f0-9]{4}\s?)+$
模式將找不到與前導空格匹配的內容。
要僅匹配包含u[A-Fa-f0-9]{4}
和空格 ( \s
) 模式的字符串,您可以使用
'~^\s*u[A-Fa-f0-9]{4}(?:\s*u[A-Fa-f0-9]{4})*\s*$~'
查看正則表達式演示
細節
^
- 字符串的開始\s*
- 0+ 個空格u[A-Fa-f0-9]{4}
-u
然后是四個十六進制字符(?:\s*u[A-Fa-f0-9]{4})*
- 0 次或多次出現的序列\s*
- 0+ 個空格u[A-Fa-f0-9]{4}
-u
然后是四個十六進制字符\s*
- 0+ 個空格$
- 字符串結束。
您可以將其縮短為 '~^\s*(u[A-Fa-f0-9]{4})(?:\s*(?1))*\s*$~'
PHP。
- 1 回答
- 0 關注
- 212 瀏覽
添加回答
舉報
0/150
提交
取消