Q:

Specflow step definition mapping with wildcard attribute

I have this situation:
[Given(@"I select cell (.+)")]
[When(@"I select cell (.+)")]
[Then(@"I select cell (.+)")]
public void WhenIClickOnExcelCellX(string cell)
{
     excelDriver.SelectCell(cell);
}

Is there any wildcard attribute which will match any of those three keywords?
I'd like to write something like this and not to worry whether I have provided mapping for that attribute or not.
[Any(@"I select cell (.+)")]
public void WhenIClickOnExcelCellX(string cell)
{
    excelDriver.SelectCell(cell);
}

A:

Actually I'm pretty sure there isn't and that this is by design.
Take a moment and consider what Given, When and Then steps are trying to achieve, I think this is:

Given - is a precondition so you don't really care how the code under test gets in that state, just that the state is there so we can run a test.
When - is the performing of an action that changes state so we can test it
Then - is the check that something has actually got into the correct state

So at most you might consider that if your When I select cell x is a fairly lightweight implementation, you could (but not necessarily should) reuse that for Given I select cell x.
However your Then I select cell x really isn't valid, instead it really should be Then cell x should be selected, i.e.
using Should;
[Then(@"cell (.+) should be selected")] //Regex might need changing
public void ThenCellXShouldBeSelected(string cell)
{
     excelDriver.IsSelected(cell).ShouldBeTrue(); //Or whatever the call is
}

Hope this helps.
Update
Looking at the code at https://github.com/techtalk/SpecFlow/blob/master/Runtime/Attributes.cs reveals that there is a base class StepDefinitionBaseAttribute but it is abstract. 

