0

我正在尝试创建一个 SEDE 查询来查找包含纯文本链接的帖子,但以下查询并不好:

SELECT Id AS [Post Link], Body
FROM Posts
where Body LIKE '%http://%'
and Body not like '%<a href="%'
and body not like '%<img src="%'

因为它将排除帖子包含文本链接有效超链接/图像的结果。

正确的使用方法是什么?我尝试搜索无济于事。


如何在以下类示例中抽象/删除冗余方法

我正在尝试删除从我的类继承的Enemy0, Enemy1, ... 类中的冗余abstract Enemy。这都是 Monogame/XNA。

我的抽象类看起来像这样:

public abstract class Enemy
{
    public abstract Vector2 Position { get; }

    public Enemy() {}

    public abstract void Update(GameTime gameTime);

    public abstract void Draw(SpriteBatch spriteBatch);

    public abstract Part getLeftPart();

    public abstract Part getRightPart();

    public abstract Part getLeftLeftPart(); //This method only used in Boss0 classes

    public abstract Part getRightRightPart(); //This method only used in Boss0 classes
}

尽管我的Enemy#类在实现上有所不同,但有些方法完全相同/冗余并占用空间(但具有与该类相关的参数,例如私有变量_leftPartPos)。

当我有 20 个左右Enemy#的类并且我决定向Part对象添加一个额外的参数(用于getLeftPart()- 我还必须修改 20 个继承Enemy

public class Enemy0 : Enemy
{
    private Texture2D _partTexture;
    private Vector2 _leftpartPos;
    private Vector2 _rightPartPos;

    public override Vector2 Position
    {
        get { return _position; } // Reason for this get is to access inner variables
    }                             // like _position.X = 10
    private Vector2 _position;

    public Enemy() {}

    public abstract void Update(GameTime gameTime)
    {
        // Some varying functionality per inheriting class
    }

    public abstract void Draw(SpriteBatch spriteBatch)
    {
        // Some varying functionality per inheriting class
    }

    public override Part getLeftPart() // This always returns the same object (with
    {                                  // different params)
        return new Part(
            _partTexture,
            _leftPartPos,
            SpriteEffects.FlipHorizontally);
    }

    public abstract Part getRightPart()
    {
        return new Part(
            _partTexture,
            _rightPartPos,
            SpriteEffects.None);
    }

    public override Part getLeftLeftPart()
    {
        return null; // This only returns an instance in Boss0, Boss1, etc
    }

    public override Part getRightRightPart()
    {
        return null;
    }
}

我有这个抽象类的原因是我可以初始化一个List<Enemy>对象并访问它的各种方法,而不必将每个类强制转换为Enemy0, Enemy1, ...

有没有办法可以将getLeftPart(), getRightPart(), ... 的功能放入我的抽象类中?有没有更好的方法来解决这一切?

4

1 回答 1

2

出于查询的目的,将您不想看到的数据替换为与您的搜索模式不匹配的数据。例如:

SELECT Id AS [Post Link], Body
FROM Posts
WHERE REPLACE(
    REPLACE(
        Body,
        '<a href="http',
        'xxxx'
    ),
    '<img src="http',
    'xxxx'
)
LIKE '%http://%'
于 2015-05-03T03:53:43.580 回答