Oracle SQL处理文本字段:移除括号内容、冗余空格及末尾字符
文本字段批量清理方案
核心正则匹配规则
用这条简单的正则就能搞定所有异常场景,不用复杂嵌套:\s*\(.*
\s*:匹配左括号前的任意数量空格,解决字段和括号之间无空格的问题\(:精准匹配左括号(不管有没有对应的右括号).*:匹配左括号之后的所有内容,覆盖未闭合括号、括号内任意字符的情况
完整处理流程
- 先用上述正则把所有括号及括号后的内容替换为空
- 用正则
\s+把文本中连续的多个空格替换成单个空格 - 最后移除文本首尾的空格
示例效果验证
- 输入:
Teacher 1 (L)→ 处理后:Teacher 1 - 输入:
Secretary 5 (MN→ 处理后:Secretary 5 - 输入:
Music (TT) 18→ 处理后:Music 18 - 输入:
Admin(HR) 2→ 处理后:Admin 2
代码示例(Python)
import re def clean_field(text): # 移除括号及后续内容 cleaned = re.sub(r'\s*\(.*', '', text) # 合并多空格为单空格 cleaned = re.sub(r'\s+', ' ', cleaned) # 去除首尾空格 return cleaned.strip() # 测试用例 test_inputs = [ "Teacher 1 (L)", "Secretary 5 (MN", "Music (TT) 18", "Admin(HR) 2", "Staff (XYZ) 7" ] for input_str in test_inputs: print(f"原内容: {input_str} → 清理后: {clean_field(input_str)}")
内容的提问来源于stack exchange,提问作者Michelle H
相关产品推荐
相关产品推荐

