日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

【java初学】正则表达式和敏感词汇过滤

發布時間:2023/12/10 编程问答 24 豆豆
生活随笔 收集整理的這篇文章主要介紹了 【java初学】正则表达式和敏感词汇过滤 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

文章目錄

    • 正則表達式和敏感詞匯過濾
        • 1. 正則表達式
          • 1.1 正則表達式
          • 1.2 常用正則表達式
          • 1.3 使用
        • 2. 敏感詞匯過濾
          • 2.1 需求分析
          • 2.2 生活中的代理

正則表達式和敏感詞匯過濾

1. 正則表達式

1.1 正則表達式
  • 正則表達式是描述字符模式的對象。

  • 正則表達式用于對字符串模式匹配及檢索替換,是對字符串執行模式匹配的強大工具。

  • 語法:

    • var patt=new RegExp(pattern,modifiers);
    • var patt=/pattern/modifiers;
var re = new RegExp("\\w+"); var re = /\w+/;

修飾符:用于執行區分大小寫和全局匹配:

修飾符描述
i執行對大小寫不敏感的匹配。
g執行全局匹配(查找所有匹配而非在找到第一個匹配后停止)。
m執行多行匹配。

方括號:用于查找某個范圍內的字符

表達式描述
[abc]查找方括號之間的任何字符。
[^abc]查找任何不在方括號之間的字符。
[0-9]查找任何從 0 至 9 的數字。
[a-z]查找任何從小寫 a 到小寫 z 的字符。
[A-Z]查找任何從大寫 A 到大寫 Z 的字符。
[A-z]查找任何從大寫 A 到小寫 z 的字符。
[adgk]查找給定集合內的任何字符。
[^adgk]查找給定集合外的任何字符。
(red|blue|green)查找任何指定的選項。

元字符(Metacharacter):是擁有特殊含義的字符:

元字符描述
.查找單個字符,除了換行和行結束符。
\w查找單詞字符。
\W查找非單詞字符。
\d查找數字。
\D查找非數字字符。
\s查找空白字符。
\S查找非空白字符。
\b匹配單詞邊界。
\B匹配非單詞邊界。
\0查找 NULL 字符。
\n查找換行符。
\f查找換頁符。
\r查找回車符。
\t查找制表符。
\v查找垂直制表符。
\xxx查找以八進制數 xxx 規定的字符。
\xdd查找以十六進制數 dd 規定的字符。
\uxxxx查找以十六進制數 xxxx 規定的 Unicode 字符。

量詞:用于表示重復次數的含義

量詞描述
n+匹配任何包含至少一個 n 的字符串。例如,/a+/ 匹配 “candy” 中的 “a”,“caaaaaaandy” 中所有的 “a”。
n*匹配任何包含零個或多個 n 的字符串。例如,/bo*/ 匹配 “A ghost booooed” 中的 “boooo”,“A bird warbled” 中的 “b”,但是不匹配 “A goat grunted”。
n?匹配任何包含零個或一個 n 的字符串。例如,/e?le?/ 匹配 “angel” 中的 “el”,“angle” 中的 “le”。
n{X}匹配包含 X 個 n 的序列的字符串。例如,/a{2}/ 不匹配 “candy,” 中的 “a”,但是匹配 “caandy,” 中的兩個 “a”,且匹配 “caaandy.” 中的前兩個 “a”。
n{X,}X 是一個正整數。前面的模式 n 連續出現至少 X 次時匹配。例如,/a{2,}/ 不匹配 “candy” 中的 “a”,但是匹配 “caandy” 和 “caaaaaaandy.” 中所有的 “a”。
n{X,Y}X 和 Y 為正整數。前面的模式 n 連續出現至少 X 次,至多 Y 次時匹配。例如,/a{1,3}/ 不匹配 “cndy”,匹配 “candy,” 中的 “a”,“caandy,” 中的兩個 “a”,匹配 “caaaaaaandy” 中的前面三個 “a”。注意,當匹配 “caaaaaaandy” 時,即使原始字符串擁有更多的 “a”,匹配項也是 “aaa”。
n{X}前面的模式 n 連續出現X 次時匹配
n$匹配任何結尾為 n 的字符串。
^n匹配任何開頭為 n 的字符串。
?=n匹配任何其后緊接指定字符串 n 的字符串。
?!n匹配任何其后沒有緊接指定字符串 n 的字符串。

RegExp 對象方法

方法描述
compile編譯正則表達式。
exec檢索字符串中指定的值。返回找到的值,并確定其位置。
test檢索字符串中指定的值。返回 true 或 false。

支持正則表達式的 String 對象的方法

方法描述
search檢索與正則表達式相匹配的值。
match找到一個或多個正則表達式的匹配。
replace替換與正則表達式匹配的子串。
split把字符串分割為字符串數組。

正則表達式的使用

  • test方法:搜索字符串指定的值,根據結果并返回真或假
  • exec() 方法:檢索字符串中的指定值。返回值是被找到的值。如果沒有發現匹配,則返回 null。
var patt1=new RegExp("e"); document.write(patt1.test("The best things in life are free")); var patt1=new RegExp("e"); document.write(patt1.exec("The best things in life are free"));
1.2 常用正則表達式
用戶名限制^[a-zA-Z]\w{5,17}$ 弱密碼限制^[a-zA-Z]\w{5,17}$ 強密碼限制^(?=.*\d)(?=.*[a-z])(?=.*[A-Z]).{6,18}$^(?=.*\d)(?=.*[a-z])(?=.*[A-Z]).{8,16}$ Email限制^\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*$ 手機號/^1[3-9]\d{9}$/不會就百度最新XXXXX正則
1.3 使用
var str = "18611110001"; // 正則表達式對象 var regExp = new RegExp(/^1[3-9]\d{9}$/); var b = regExp.test(str); console.log("手機號是否正確:" + b);var email = "123@123.net.cn"; regExp = new RegExp(/^\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*$/); console.log("Email是否正確:" + regExp.test(email));var userName = "gh_pfsp"; regExp = new RegExp(/^[a-zA-Z]\w{5,17}$/); console.log("用戶號是否合法:" + regExp.test(userName));var password = "Liu12_4567.m"; regExp = new RegExp(/^(?=.*\d)(?=.*[a-z])(?=.*[A-Z]).{6,18}$/); console.log("密碼是否合法:" + regExp.test(password));

2. 敏感詞匯過濾

2.1 需求分析
數據從用戶到服務器,需要保存或者展示,這里需要對一些敏感詞匯進行過濾操作。如果說是用戶提交到服務器之后,服務器來完成對應操作。通過Servlet來完成。對于Servlet來說,功能壓力過多,且需要考慮的地方過多。過濾器可以來滿足對應的要求。過濾器需要放行數據之前,對于用戶提供的參數數據進行過濾,替換操作。用戶請求的request對象中,沒有setParameter方法。后臺獲取數據的相關方法:String getParameter()String[] getParameterValues()Map<String, String[]> getParameterMap()目標將所有相關方法的返回值進行獲取和修改,再次返回放行。代理!!!
2.2 生活中的代理
代理,代購,代辦,代駕,代練好想你 總代1. 簽協議制定各種各樣的規范,【遵從】 Java中制定規范 ==> interface2. 培訓已經存在的條例條款必須學會。【繼承】Java中的繼承 ==> class3. 代理是真的廠方【假】代理對象Java中的代理類似操作過程1. 創建代理對象a. 真對象b. 要求繼承/使用的類c. 要求遵從/使用的接口2. 代理對象實現/增強方法a. 得到方法的名字b. 得到方法的參數參數增強通過【真實對象】執行對應方法,可以得到返回值或者一定的結果。返回值增強

總結

以上是生活随笔為你收集整理的【java初学】正则表达式和敏感词汇过滤的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。