1. 程式人生 > >中文正則表示式匹配-正則中文匹配

中文正則表示式匹配-正則中文匹配

原文連結:http://caibaojian.com/zhongwen-regexp.html

這篇文章主要講如何使用正則匹配中文字元,中文正則表示式的匹配規則不像其他正則規則一樣容易記住,下面一起看看這個中文正則表示式是怎麼樣的。

\w匹配的僅僅是中文,數字,字母,對於國人來講,僅匹配中文時常會用到,見下

匹配中文字元的正則表示式: [\u4e00-\u9fa5]

或許你也需要匹配雙位元組字元,中文也是雙位元組的字元

匹配雙位元組字元(包括漢字在內):[^\x00-\xff]

注:可以用來計算字串的長度(一個雙位元組字元長度計2,ASCII字元計1)

更多常用正則表示式匹配規則:

英文字母:[a-zA-Z]

數字:[0-9]

匹配中文,英文字母和數字及_:

//code from http://caibaojian.com/zhongwen-regexp.html
^[\u4e00-\u9fa5_a-zA-Z0-9]+$

同時判斷輸入長度:·

[\u4e00-\u9fa5_a-zA-Z0-9_]{4,10}

^[\w\u4E00-\u9FA5\uF900-\uFA2D]*$

1、一個正則表示式,只含有漢字、數字、字母、下劃線不能以下劃線開頭和結尾:

^(?!_)(?!.*?_$)[a-zA-Z0-9_\u4e00-\u9fa5]+$

其中:

^ 與字串開始的地方匹配

(?!_)  不能以_開頭

(?!.*?_$)  不能以_結尾

[a-zA-Z0-9_\u4e00-\u9fa5]+  至少一個漢字、數字、字母、下劃線

$  與字串結束的地方匹配

放在程式裡前面加@,否則需要\\進行轉義 @"^(?!_)(?!.*?_$)[a-zA-Z0-9_\u4e00-\u9fa5]+$"

(或者:@"^(?!_)\w*(?<!_)$" 或者 @" ^[\u4E00-\u9FA50-9a-zA-Z_]+$ " )

2、只含有漢字、數字、字母、下劃線,下劃線位置不限:

^[a-zA-Z0-9_\u4e00-\u9fa5]+$

3、由數字、26個英文字母或者下劃線組成的字串

^\w+$

4、2~4個漢字

@"^[\u4E00-\u9FA5]{2,4}$";

5、

^[\w-]+(\.[\w-]+)*@[\w-]+(\.[\w-]+)+$

用:(Abc)+ 來分析: XYZAbcAbcAbcXYZAbcAb


來源:前端開發部落格

相關推薦

angular6 表示式允許輸入部分中文字元

之前接到新需求,要求允許輸入漢字的輸入框允許輸入中文括號,寫正則表示式 let filter2=/^[\( \)\u4e00-\u9fa5]+$/; 測試正常,執行ng build --prod命令打包之後執行出錯。 發現,正則表示式變為/^[\\uff08\\uff09\u4e00-\

表示式限制只能輸入中文英文數字

無論移動端還是後臺都會遇到輸入框限制輸入特殊字元或者表情符;下面程式碼通過正則控制只能輸入中文、英文、數字 package pattern; import java.util.regex.Matcher; import java.util.regex.Pattern; publi

grok表示式一行多個結果匹配

原理介紹 grok內建了一些常用正則的表示式,其在grok-pattern檔案中; 你可以自己定義一些喜歡的正則表示式,用於匹配自己需求的內容: 例如:中國式的時間匹配2018/9/11 9:46:32  TIMESTAMP_CHS %{YEAR}/%{MO

Python3 表示式中group()方法獲得匹配結果

正則表示式中用match()方法可以獲得匹配的字串內容。 如果想從字串中提取出一部分內容,可以用括號將提取目標括起來。 括號()實際上標記了一個子表示式的開始和結束的位置,被標記的每個子表示式會依次對應每個分組,呼叫group()方法傳入分組的索引即可獲得提取的結果。

表示式(re模組,匹配單個字元,匹配多個字元,匹配分組,python貪婪和非貪婪,r的作用)

re.match() 能夠匹配出以xxx開頭的字串 匹配單個字元 示例1: . #coding=utf-8 import re ret = re.match(".","M") print(ret.group()) ret = re.match("t.o","too") print

java表示式 最大最小匹配

 String s = "/m/t/wd/nl/n/p/m/wd/nl/n/p/m/wd/nl/n/p/m/v/n";          Pattern p = Pattern.compile("/m

表示式中的的向前匹配、向後匹配、負向前匹配、負向後匹配寫法

比如我們要匹配下面這個語句中的“<”後面不是“br>”的“<”: <div>line1</div> <br> 這個正則表示式這麼寫: /<(?!br>)/ 如果我們只匹配後面為“br>”的“<”

qt中的表示式QRegExp使用大全以及匹配中括號[]方法大全

Qt的SDK裡包含一個很幫的GUI工具,可以方便我們進行這類轉換並測試你的表示式。可以按照如下的方式開啟:“開始”->“程式”->“Qt SDK by Nokia v2010.02.1 (open source)”->“QtDemo”->“To

iOS 表示式判斷純數字以及匹配11位手機號碼

1用正則表示式 //是否是純數字 + (BOOL)isNumText:(NSString *)str{ NSString * regex = @"(/^[0-9]*$/)"; NSPredicate * pred = [NSPred

表示式常見函式(爬蟲網頁匹配)

一、區域性匹配(只匹配一個結果)1.re.match()函式  :從源字元的串的開頭進行匹配2.re.search()函式 :在全文中進行檢索並匹配從例子中看區別:import re #string ="apythonhellomypythonisouorpythonend"

表示式裡字串”不包含”匹配技巧

經常我們會遇到想找出不包含某個字串的文字,程式設計師最容易想到的是在正則表示式裡使用,^(hede)來過濾”hede”字串,但這種寫法是錯誤的。我們可以這樣寫:[^hede],但這樣的正則表示式完全是另外一個意思,它的意思是字串裡不能包含‘h’,‘e’,‘d’三個但字元。

非貪婪匹配:如何使用表示式碰到到第一個匹配到的字串就停止

? 當該字元緊跟在任何一個其他限制符(*,+,?,{n},{n,},{n,m})後面時,匹配模式是非貪婪的。非貪婪模式儘可能少的匹配所搜尋的字串,而預設的貪婪模式則儘可能多的匹配所搜尋的字串。例如,對於字串“oooo”,“o+”將盡可能多的匹配“o”,得到結果[

表示式知識詳解之匹配開頭或結尾 (java版示例)

示例功能: 1、匹配字串的開頭 2、匹配字串的結尾 package com.songguoliang.regex; import java.util.regex.Matcher; imp

Python表示式處理中文中的匹配

由於中文使用2個位元組來表示一個字,在正則表示式中如果不進行轉換的話,編譯器是不能識別的,所以這裡簡要談一下正則表示式中遇到中文的問題。 關於python的re模組的基本用法,與各種正則表示式的基本形式,在之前的一篇文章中,進行過介紹,故此處不再贅述。 下面是一段對中文

表示式 平衡組/遞迴匹配

平衡組用於匹配巢狀層次結構,常用於匹配HTML標籤(當HTML內容不規範,起始標籤和結束標籤數量不同時,匹配出正確配對的標籤),在此把表示式統一以\w為例。 (?'group'\w) 捕獲的分組(\w匹配到的內容)命名為group,並壓入堆疊(?'-group'\w) 捕獲

利用表示式從檔案路徑中匹配檔名

第一種,檔名不包含副檔名: 正則表達寫法:([^<>/\\\|:""\*\?]+)\.\w+$ java中的寫法: …… String reg = "([^<>/\\\\|:\"\"\\*\\?]+)\\.\\w+$+"; Matcher m = P

scala之表示式(二)內部匹配函式

1、scala解析正則表示式步驟 以下面表達為例: val dateP1 = new scala.util.matching.Regex("""(\d\d\d\d)-(\d\d)-(\d\d)"""

Perl表示式(1) - 表示式基礎知識

Perl正則表示式 1. 基礎知識 Perl中正則表示式(regular expression)預設匹配 $_ 中的字串,匹配成功就返回真,否則返回假; Perl匹配正則表示式時,可以使用變數內插,先完成變數內插,取出變數中的字串後,編譯正則表示式。 1.

表示式 IP 表示式 合法IP

為了以後的不時之需。 適用於Java 語言。 String validIpRegex = "^(1\\d{2}|2[0-4]\\d|25[0-5]|[1-9]\\d|[1-9])

js中字串表示式法則pattern、RegExp、flags、exec

全棧工程師開發手冊 (作者:欒鵬) js中字串正則表示式 正則法則的應用 正則表示式 = /pattern/flags 其中flags中g表示匹配全部,i表示不區分大小寫,m表示匹配多