【发布时间】:2021-09-13 19:58:51
【问题描述】:
我需要一个正则表达式来匹配所有被 。匹配项不能跟随奇数个反斜杠,但可以跟随零个或偶数个反斜杠。
目前,我有这个正则表达式:
(?<!\\)(?:\\{2})*(<@!|<@)[0-9]+>
问题是匹配包含反斜杠,我需要一个不包含反斜杠的正则表达式。
任何人都可以制作一个可以完成此操作的正则表达式吗?
例子:
有效输入字符串:\\<@!123>
匹配:<@!123>
输入字符串无效:\\\<@!123>
匹配:无
有效输入字符串:<@123>test<@456>
匹配:<@123>, <@456>
输入字符串无效:\<@123>test\\\<@456>
匹配:无
【问题讨论】:
-
@anubhava 确定
-
只需使用捕获组并提取其内容即可。使用
String regex = "(?<!\\\\)(?:\\\\{2})*(<@!?\\d+>)"- 请参阅stackoverflow.com/a/17969620/3832970 如何获取组值。 -
@WiktorStribiżew 谢谢!您的解决方案有效