<SYSTEM_TASK:>
Given the following text problem statement, write Python code to implement the functionality described below in problem statement
<END_TASK>
<USER_TASK:>
Problem:
I have a dataframe with column names, and I want to find the one that contains a certain string, but does not exactly match it. I'm searching for 'spike' in column names like 'spike-2', 'hey spike', 'spiked-in' (the 'spike' part is always continuous). 
<ASSISTANT_TASK:>
Python Code:
import pandas as pd
data = {'spike-2': [1,2,3], 'hey spke': [4,5,6], 'spiked-in': [7,8,9], 'no': [10,11,12]}
df = pd.DataFrame(data)
s = 'spike'
def g(df, s):
    spike_cols = [s for col in df.columns if s in col and s != col]
    for i in range(len(spike_cols)):
        spike_cols[i] = spike_cols[i]+str(i+1)
    result = df[[col for col in df.columns if s in col and col != s]]
    result.columns = spike_cols
    return result
result = g(df.copy(),s)
<END_TASK>