![](/img/trans.png)
[英]How to match and copy everything up to first occurrence of a character using regex?
[英]How to match everything up to the second occurrence of a character?
所以我的字符串看起來像這樣:
Basic information, advanced information, super information, no information
我想捕獲直到第二個逗號的所有內容,所以我得到:
Basic information, advanced information
那將是什么正則表達式?
我試過: (.*,.*),
但我明白了
Basic information, advanced information, super information,
這將捕獲但不包括第二個逗號:
[^,]*,[^,]*
英文翻譯:
[^,]*
= 盡可能多的非逗號字符
,
= 逗號
[^,]*
= 盡可能多的非逗號字符
[...]
是一個字符類。 [abc]
表示“a 或 b 或 c”,而[^abc]
表示除 a 或 b 或 c 之外的任何內容。
您可以嘗試^(.*?,.*?),
問題是.*
是貪婪的並且匹配最大數量的字符。 這 ? 后面 * 將行為更改為非貪婪。
您也可以在每個 .*? 周圍加上括號。 如果需要,可以單獨捕獲字符串。
我會采用 DRY 方法,如下所示:
^([^,]*,){1}[^,]*
這樣,您可以匹配所有內容,直到出現一個字符,而無需重復自己,除了最后一個模式。
盡管在原始海報的情況下,分組和分組的重復是沒有用的,我認為這將有助於其他需要匹配超過 2 次模式的人。
解釋:
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.