Regex 使用条件的正则表达式

Regex 使用条件的正则表达式,regex,conditional,code-snippets,sublimetext,Regex,Conditional,Code Snippets,Sublimetext,我知道我真的需要读这些书(,)中的一本来学习正则表达式,但与此同时,我有一个小问题要问那些已经有了这些知识的人。 我想为升华文本编写一个代码段,如果我开始键入,它会为括号留下内部空间,但是如果我删除选择,它会删除括号内的所有内容 触发: ( ${1:anything could be typed here} ) 键入: ( I_wrote_that ) 删除: () 我不要求有人为我写,但如果能对条件正则表达式给出清晰的解释,我将不胜感激。 谢谢 注意:我指的是正则表达式中的条件语法。 N

我知道我真的需要读这些书(,)中的一本来学习正则表达式,但与此同时,我有一个小问题要问那些已经有了这些知识的人。 我想为升华文本编写一个代码段,如果我开始键入,它会为括号留下内部空间,但是如果我删除选择,它会删除括号内的所有内容

触发:

( ${1:anything could be typed here} )
键入:

( I_wrote_that )
删除:

()

我不要求有人为我写,但如果能对条件正则表达式给出清晰的解释,我将不胜感激。 谢谢


注意:我指的是正则表达式中的条件语法。 NB2:下面是一个使用C/C++printf的示例

片段:

printf( "${1:%s}\\n" ${1/([^%]|%%)*(%.)?.*/(?2:,:\);)/} $2 ${1/([^%]|%%)*(%.)?.*/(?2:\);))/}
给出:

printf( "%s\n" ,  );
或:

因为您可以通过以下方式在regexp中使用条件:

(?(条件)然后| else)

(?(?=模式)然后|否则)

正则表达式是在输入中发现模式和相似性的方法,但不是逻辑(否则我猜,它也会是逻辑表达式)。如果您的程序希望在regexp子句中加入一些逻辑,那么这可能是设计缺陷的第一个征兆

更新+

还有,我不明白


可以在括号内键入任何内容。但如果内容被删除,我们也会删除内部填充亚硝酸酶

你说的是动态regexp吗?看起来您需要一些事件驱动的regexp或命令行,以便在键入时分析regexp

也可能您正在谈论的是
Sublime Text
功能,而不是纯regexp(根据实现情况,也可能会有一些偏差)。

因为您可以在regexp中以以下方式使用条件:

(?(条件)然后| else)

(?(?=模式)然后|否则)

正则表达式是在输入中发现模式和相似性的方法,但不是逻辑(否则我猜,它也会是逻辑表达式)。如果您的程序希望在regexp子句中加入一些逻辑,那么这可能是设计缺陷的第一个征兆

更新+

还有,我不明白


可以在括号内键入任何内容。但如果内容被删除,我们也会删除内部填充亚硝酸酶

你说的是动态regexp吗?看起来您需要一些事件驱动的regexp或命令行,以便在键入时分析regexp


也有可能您谈论的是
Sublime Text
功能,而不是纯regexp(根据实现也可能有一些偏差)。

“条件正则表达式”,您指的是一些regex风格的条件语法
(?(条件)yes模式| no模式)
,或者你在谈论升华文本中的某些特定内容?我指的是正则表达式中的条件语法。输入、条件和预期输出是什么。我不清楚。括号里可以打任何东西。但是如果删除了内容,我们也会删除内部填充。“条件正则表达式”,您是指某些正则表达式风格中的条件语法吗
(?(条件)yes模式| no模式)
,或者你在谈论升华文本中的某些特定内容?我指的是正则表达式中的条件语法。输入、条件和预期输出是什么。我不清楚。括号里可以打任何东西。但是如果删除了内容,我们也会删除内部填充。这是事实,这里是C/C++中printf的一个极好的文本示例:
printf(${1:%s}\\n“${1/([^%]\%%)*((.%.)?。/(?2:,:\)/}$2${1/([^%]\%)*(.%.。/(?2:\)/)知道触发true时,${1:%s将选择放在
%s上,下面是C/C++中printf的一个极好的文本示例:
printf(${1:%s}\\n“${1/([^%]\%)*(%)?./(?2:,:\);)/}$2${1/([^%]\%%)*()?./(?2:\)/}
,知道触发代码段时,${1:%s}将选择放在
%s
上。
printf( "\n" );