4
如何找到這樣的線路在文件定期對比賽
######## this_is_a_line.sh ########
表達我嘗試下面的正則表達式,但它不工作
(#)+()+(A-Za-z0-9_)+(.sh)()+(#)+
但這似乎並沒有工作。任何人都可以讓我知道什麼是錯的?
如何找到這樣的線路在文件定期對比賽
######## this_is_a_line.sh ########
表達我嘗試下面的正則表達式,但它不工作
(#)+()+(A-Za-z0-9_)+(.sh)()+(#)+
但這似乎並沒有工作。任何人都可以讓我知道什麼是錯的?
您使用(...)
(a capturing group)而不是[...]
(a character class)。使用字符類:
#+ +[A-Za-z0-9_]+\.sh +#+
^^^^^^^^^^^^^
見regex demo(注意最捕獲組是多餘這裏,我把他們趕走此外,.
必須逃到匹配一個點。)
的[A-Za-z0-9_]+
比賽1個或多個字母,數字或_
。
的(A-Za-z0-9_)+
匹配1個或多個序列A-Za-z0-9_
(見demo)。
此外,在Java中,你可以使用\w
匹配[A-Za-z0-9_]
和shorten your regex到
#+ +\w+\.sh +#+
不要忘記,你需要在Java中的模式字符串(String pattern = "#+ +\\w+\\.sh +#+";
)每個\
一倍。