正则表达式用于匹配

4
如何在文件中查找这样的行
########     this_is_a_line.sh     ######## 

我尝试了下面的正则表达式,但它没有起作用。
(#)+( )+(A-Za-z0-9_)+(.sh)( )+(#)+ 

但是这似乎不起作用。请问有人可以告诉我问题出在哪里吗?
1个回答

6

您使用了(...)(一个捕获组),而不是[...](一个字符类)。请使用字符类:

#+ +[A-Za-z0-9_]+\.sh +#+
    ^^^^^^^^^^^^^

请参见正则表达式演示(请注意,这里大多数捕获组是多余的,我已经将它们删除。此外, . 必须转义才能匹配一个字面点号。)

[A-Za-z0-9_]+ 匹配 1 个或多个字母、数字或 _

(A-Za-z0-9_)+ 匹配 1 个或多个 序列,其中包含 A-Za-z0-9_(请参见演示)。

此外,在 Java 中,您可以使用 \w 来匹配 [A-Za-z0-9_]简化您的正则表达式

#+ +\w+\.sh +#+

不要忘记在 Java 中的模式字符串中双倍使用每个 \(例如:String pattern = "#+ +\\w+\\.sh +#+";)。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接