【发布时间】:2012-05-17 07:37:22
【问题描述】:
我想抛出验证错误,如果 -
- 用户输入包含php标签
<?php(也适用于短标签<?) - 但如果没有检测到 php 标签,我想允许 XML 标签 (
<?xml)。 - 在两者都存在的情况下,我想抛出错误。
我现在已经使用了以下正则表达式 -
`(.*?)<\?(php)?[^xml](.*?)`
但如果输入仅包含 PHP 短标签,则不匹配。
我想匹配以下 -
PHP 短标签
<?
PHP 标记
<?php
PHP标签中存在xml标签
<?php ?>
<?xml
以下不匹配
<?xml
更新
如果输入仅包含<?,没有任何结尾空格,则使用此正则表达式(.*?)<\?[^x](.*?) 不会检测到<? 字符。我想我只需要在以下位置添加一个条件以进一步检查是否有更多字符 -
|
v
`(.*?)<\?[^x](.*?)`
如果我尝试这个 - (.*?)<\?([^x]?)(.*?),它不再排除 xml。你看到我挂在哪里了吗?我想这里有一些正则表达式允许的东西。有什么想法吗?
【问题讨论】:
标签: regex