正则表达式使用 ( ) 来搜索指示组的实例
我想把 ( 和 ) 之间的东西拿回来。
但是 ( ) 用于组,并且使用转义 \ 我收到错误:
Pattern p = Pattern.compile("(\(.*\))");
意外的字符:'('
我怎样才能防止这种情况?
2010 年 10 月 13 日星期三 20:00:11 +0200(欧洲中部夏令时间)
2010 年 10 月 12 日星期二 21:27:48 +0200(欧洲中部夏令时间)
2010 年 10 月 12 日星期二 04:44:57 +0200(西欧 (zomertijd))
2010 年 10 月 12 日星期二 03:10:22 +0200(欧洲中部夏令时间)
2010 年 10 月 11 日星期一 23:10:04 +0200(欧洲中部夏令时间)
2010 年 10 月 11 日星期一 20:56:27 +0200(欧洲中部夏令时间)
(我使用java)
I want to get the stuff back between the ( and ).
But ( ) are used for groups, and with the escape \ i get the error:
Pattern p = Pattern.compile("(\(.*\))");
unexpected char: '('
How can i prevent this?
Wed 13 Oct 2010 20:00:11 +0200 (CEST)
Tue 12 Oct 2010 21:27:48 +0200 (CEST)
Tue 12 Oct 2010 04:44:57 +0200 (West-Europa (zomertijd))
Tue 12 Oct 2010 03:10:22 +0200 (CEST)
Mon 11 Oct 2010 23:10:04 +0200 (CEST)
Mon 11 Oct 2010 20:56:27 +0200 (CEST)
(I used java)
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
您还需要转义反斜杠;另外,我认为您希望在不同的位置进行转义(并且最好更具体地说明您想要匹配的内容):
说明:
You also need to escape the backslashes; also I think you want the escape in a different position (and better be more specific about what you want to match):
Explanation:
在Java字符串中,你必须转义
'\\'
字符,尝试:In Java strings, you have to escape the
'\\'
character, try:您需要转义转义:
请注意,我还使用了“匹配任何内容”的非贪婪版本。
双转义是因为在字符串文字中,反斜杠用于转义序列(如
\n
),因此如果您想在字符串中使用反斜杠,则需要使用另一个反斜杠对其进行转义。You need to escape the escape:
Note that I also used the un-greedy version of "match anything".
The double escape is because within a string literal, the backslash is used for escape sequences (like
\n
) so if you want a backslash in your string, you need to escape it with another backslash.