除“*/”之外的任何字符集的正则表达式是什么
What is the regex for any set of characters other than "*/"
我一直在使用 Lex,遇到了在 C 程序中查找 注释 并在最终输出中删除它们的问题。为此,我需要确定出现的任何 */
(这就是传统多行注释的结束方式!)。
然后我的问题被简化为一个接受除 */
之外的任何字符序列的子问题。我尝试了几种方法来实现这一点。我试过了:[^*\/]
,按理说它不起作用。任何帮助或建议都是值得赞赏的。
您需要按字面意思匹配后跟 */
双字符序列的任何字符序列。积极向前看,你会实现这一目标。对于可能出现的多次 */
,您需要正向回顾或文本开头 ((?<=^|\*\/)
):
(?<=^|\*\/).*?(?=\*\/)
我会结合使用先行和后行来实现顶级解决方案。
/(?<=\/\*).*(?=\*\/)/s
这将确保 /*
和 */
之间的所有内容(假设换行符和 s
修饰符)都被捕获到一个组中。
对于"What is the regex for any set of characters other than “*/”"
这很简单:
/[^\/\*]/
我一直在使用 Lex,遇到了在 C 程序中查找 注释 并在最终输出中删除它们的问题。为此,我需要确定出现的任何 */
(这就是传统多行注释的结束方式!)。
然后我的问题被简化为一个接受除 */
之外的任何字符序列的子问题。我尝试了几种方法来实现这一点。我试过了:[^*\/]
,按理说它不起作用。任何帮助或建议都是值得赞赏的。
您需要按字面意思匹配后跟 */
双字符序列的任何字符序列。积极向前看,你会实现这一目标。对于可能出现的多次 */
,您需要正向回顾或文本开头 ((?<=^|\*\/)
):
(?<=^|\*\/).*?(?=\*\/)
我会结合使用先行和后行来实现顶级解决方案。
/(?<=\/\*).*(?=\*\/)/s
这将确保 /*
和 */
之间的所有内容(假设换行符和 s
修饰符)都被捕获到一个组中。
对于"What is the regex for any set of characters other than “*/”"
这很简单:
/[^\/\*]/