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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

多行匹配.+表示分组的错误

發布時間:2025/7/14 编程问答 21 豆豆
生活随笔 收集整理的這篇文章主要介紹了 多行匹配.+表示分组的错误 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

今天在Java中想使用正則表達式來獲取一段文本中的任意字符。于是很隨意得就寫出如下匹配規則:
(.*)
結果運行之后才發現,無法獲得換行之后的文本。于是查了一下手冊,才發現正則表達式中,“.”(點符號)匹配的是除了換行符“\n”以外的所有字符。同時,手冊上還有一句話:要匹配包括 '\n' 在內的任何字符,請使用像 '[.\n]' 的模式。于是我將正則表達式的匹配規則修改如下:
([.\n]*),當然,如果是在java程序中直接寫到話,需要改為([.\\n]*)
結果再次運行程序,發現什么內容也取不到了。我百思不得其解,又將其修改為如下規則:
([.|\n]*) 以及 ([\n.]*)
結果還是不行,什么內容都取不到??磥睃c符號和換行符卯上勁了~
然后上網一查,雖然沒有查出上述規則到底是什么地方出問題了,但是查出了一個解決辦法,經過一試,果然可以匹配包括換行符在內的任意字符,以下為正確的正則表達式匹配規則:
([\s\S]*)
同時,也可以用 “([\d\D]*)”、“([\w\W]*)” 來表示。


在文本文件里, 這個表達式可以匹配所有的英文
/[ -~]/
這個表達式可以匹配所有的非英文(比如中文)
/[^ -~]/
/是VI里用的. 你在editplus或程序里不需要/?

?

----------------以上轉自腳本之家----------------

106 sadasd s da s || 10101010
107
108 asde31d12e21
109 e12e12e312r
110 412r
111 1
112 24r4rt4rtf2rt2r24
113 r4
114
115 ########################

要匹配以上這一段固定格式并獲取第10編號的內容,正則如下:

\|\|\s\d+([.\n]+)\#{24,}

或者

\|\|\s\d+([\s\S]+)\#{24,}

或者

\|\|\s\d+([\w\W]+)\#{24,}

或者

\|\|\s\d+([.]+)\#{24,} 并啟動Dot-all模式,在python中就是把re.match的flag參數加上re.S;在其他平臺如cavium hfa中就在開始加上{s}

但是python的re.match是從頭開始匹配的額,需加.*;re.search則可以直接使用;

print(matchobj.group(1))即是107line-114line的內容

?------------------------------------------------

?

轉載于:https://www.cnblogs.com/pubut/p/7550422.html

總結

以上是生活随笔為你收集整理的多行匹配.+表示分组的错误的全部內容,希望文章能夠幫你解決所遇到的問題。

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