Regex-Select"<&引用;但不是",&书信电报;?php“;
我正在尝试使用正则表达式来选择像Regex-Select"<&引用;但不是",&书信电报;?php“;,php,regex,Php,Regex,我正在尝试使用正则表达式来选择像//这样的内容不匹配的实例 我是新加入regex的,所以任何帮助都将不胜感激 编辑:随着答案出现问题,我又添加了一个条件来匹配 <?php foo ?> //should not match <? bar ?> //should match '<?' <?bar ?> //should match '<?' there could be any character after ? <?=foobar ?>
//这样的内容不匹配的实例
我是新加入regex的,所以任何帮助都将不胜感激
编辑:随着答案出现问题,我又添加了一个条件来匹配
<?php foo ?> //should not match
<? bar ?> //should match '<?'
<?bar ?> //should match '<?' there could be any character after ?
<?=foobar ?> //should match '<?='
<?xml barbar ?> //should not match
//不应匹配
//如果与“匹配,则可以使用负前瞻断言:
<\?=?(?!php|xml)
您可以使用否定的先行断言:
<\?=?(?!php|xml)
使用下面的正则表达式:-
(<\?(?=\s).*)|(<\?=.*)
(使用下面的正则表达式:-
(<\?(?=\s).*)|(<\?=.*)
(您可以使用
<\?[^\w\s]+|<\?\B
您可以使用
<\?[^\w\s]+|<\?\B
我终于找到了
<\?=?(?!php)(?!xml)
我终于找到了
<\?=?(?!php)(?!xml)
但是它应该匹配否您选择的是带有该代码的整行。我只需要它在每个输入字符串后都有您的注释。但是它应该匹配否您选择的是带有该代码的整行。我只需要它在每个输入字符串后都有您的注释。使用此:-(我建议,但不确定是否有任何其他例外。但是,我认为我找到了一种更通用的方法,请参阅我的答案。请尽可能精确,我已经在我的文档中添加了所有可能性,作为记录,
和
将抛出语法错误,如果由PHP运行,将无法执行,因为这是一个有效的开始标记m。)后面必须有一些空格(空格、换行符、制表符等)。因此,如果你的目标是找到有效的php代码,那么这两个实际上是无效的。实际上我收到了一些代码,我需要找到这些无效的标记,以便用有效的标记替换它们。这就是为什么我想跳过使用这个:-(我建议,但不确定是否有任何其他例外。但是,我认为我找到了一种更通用的方法,请参阅我的答案。请尽可能精确,我已经在我的文档中添加了所有可能性,作为记录,
和
将抛出语法错误,如果由PHP运行,将无法执行,因为这是一个有效的开始标记m。)后面必须跟一些空格(空格、换行符、制表符等)。因此,如果你的目标是找到有效的php代码,那么这两个事实上是无效的。实际上,我收到了一些代码,我需要找到这些无效的标记,以便用有效的标记替换它们。这就是为什么我想跳过你不需要2个否定的Loookaward断言。检查我的答案,它可以作为(?!php|xml)来完成
您不需要2个否定的Loookaward断言。请检查我的答案,它可以作为(?!php|xml)