首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 更多程式語言 >> 程式設計疑難解答

正則表達式提取 content 開頭的非中文字符:[^\u4e00-\u9fa5] 匹配非漢字字符

     編輯:程式設計疑難解答

需求

從字符串 "你好content://media/external/images/media/580376你好" 中提取 content://media/external/images/media/580376。

核心正則


content[^\u4e00-\u9fa5]*

解析

  • content:字面匹配開頭標識。
  • [^\u4e00-\u9fa5]:否定字符類,匹配**非** CJK 統一漢字基本區字符(\u4e00-\u9fa5 涵蓋 20902 個常用漢字)。
  • *:貪婪匹配 0 次或多次,直到遇到漢字或字符串結束。

各語言實現示例

擴展:提取任意非中文段落


[^\u4e00-\u9fa5]+  // 至少一個非漢字字符

注意事項

  1. 擴展漢字區:如需覆蓋擴展 A/B/C 區,擴展範圍至 \u3400-\u4DBF、\u20000-\u2A6DF 等(需語言支持 Unicode 屬性 \p{Han})。
  2. 貪婪 vs 非貪婪:* 盡可能長匹配,若需最短匹配用 *?。
  3. 邊界:若 content 後直接跟漢字,匹配結果為 content(空尾部),符合語義。

[^\u4e00-\u9fa5] 是「非中文」匹配的瑞士軍刀,配合具體前綴精準提取目標片段。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved
語言代碼
JavaPattern.compile("content[^\\u4e00-\\u9fa5]*").matcher(str).results().map(MatchResult::group).findFirst()
JavaScriptstr.match(/content[^\u4e00-\u9fa5]*/)?.[0]
Pythonre.search(r'content[^\u4e00-\u9fa5]*', s).group()
C#Regex.Match(s, @"content[^\u4e00-\u9fa5]*").Value
PHPpreg_match('/content[^\x{4e00}-\x{9fa5}]*/u', $s, $m); $m[0]
Goregexp.MustCompile(`content[^\u4e00-\u9fa5]*`).FindString(s)