RegExp正則校驗之Java及R測試
前言:
正則表達式(英語:Regular Expression)原 屬于計算機科學的一個概念。正則表達式使用單個字符串來描述、匹配一系列符合某個句法規則的字符串。在很多文本編輯器里邊,正則表達式通常被用來檢索、替 換那些符合某個模式的文本。許多程序設計語言都支持利用正則表達式進行字符串操作。例如,Perl,Shell,R,Java等等。
因本人最近剛好在學習R語言進行網頁數據抓取,覺得有必要對正則表達式做個小總結,于是便有了此文。
1.重要元字符及其簡短描述
元字符 </td> |
描述 </td> </tr> | |||||||||||
\ </td> |
將下一個字符標記為一個特殊字符、或一個原義字符、或一個向后引用、或一個八進制轉義符。例如,“\\n”匹配\n。“\n”匹配換行符。序列“\\”匹配“\”而“\(”則匹配“(”。即相當于多種編程語言中都有的“轉義字符”的概念。 </td> </tr> | |||||||||||
^ </td> |
匹配輸入字符串的開始位置。如果設置了RegExp對象的Multiline屬性,^也匹配“\n”或“\r”之后的位置。 </td> </tr> | |||||||||||
$ </td> |
匹配輸入字符串的結束位置。如果設置了RegExp對象的Multiline屬性,$也匹配“\n”或“\r”之前的位置。 </td> </tr> | |||||||||||
* </td> |
匹配前面的子表達式任意次。例如,zo*能匹配“z”,“zo”以及“zoo”。*等價于{0,}。 </td> </tr> | |||||||||||
+ </td> |
匹配前面的子表達式一次或多次(大于等于1次)。例如,“zo+”能匹配“zo”以及“zoo”,但不能匹配“z”。+等價于{1,}。 </td> </tr> | |||||||||||
? </td> |
匹配前面的子表達式零次或一次。例如,“do(es)?”可以匹配“do”或“does”中的“do”。?等價于{0,1}。 </td> </tr> | |||||||||||
{n} </td> |
n是一個非負整數。匹配確定的n次。例如,“o{2}”不能匹配“Bob”中的“o”,但是能匹配“food”中的兩個o。 </td> </tr> | |||||||||||
{n,} </td> |
n是一個非負整數。至少匹配n次。例如,“o{2,}”不能匹配“Bob”中的“o”,但能匹配“foooood”中的所有o。“o{1,}”等價于“o+”。“o{0,}”則等價于“o*”。 </td> </tr> | |||||||||||
{n,m} </td> |
m和n均為非負整數,其中n<=m。最少匹配n次且最多匹配m次。例如,“o{1,3}”將匹配“fooooood”中的前三個o。“o{0,1}”等價于“o?”。請注意在逗號和兩個數之間不能有空格。 </td> </tr> | |||||||||||
? </td> |
當該字符緊跟在任何一個其他限制符(*,+,?,{n},{n,},{n,m})后面時,匹配模式是非貪婪的。非貪婪模式盡可能少的匹配所搜索的字符串,而默認的貪婪模式則盡可能多的匹配所搜索的字符串。例如,對于字符串“oooo”,“o+?”將匹配單個“o”,而“o+”將匹配所有“o”。 </td> </tr> </tbody> </table>
2.常見正則校驗:var regexEnum =
*/ public class RegExpTest {
}</pre> Java測試結果: 結語: 正則表達式可深可淺。在我看來,其重大作用主要也就是三方面,一是“校驗”,二是數據抓取,三是全局定位替換。以上內容只是本人在近期學習中的部分整理。同時也希望為其它需要了解正則表達式的朋友提供一絲參考。 以上內容純屬個人學習總結,不代表任何團體或單位。若有理解不到之處請見諒!
來自:http://www.cnblogs.com/SeaSky0606/p/4592164.html
本文由用戶 jopen 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!
相關資訊 |