Conditional formatting of a substring in cells' text

Hi,

I have the following code that highlights the whole text of any cell if it contains a search substring. Is there a way to only highlight (format) the substring in the cells’ text (similar to search highlighting)?

@app.callback([Output('datatable','data') ,

                Output('datatable', 'style_data_conditional')

                ],

                [Input('input2', 'n_clicks')],

                [State('input1', 'value')])

def update(clicks,val):

    # TODO  highlight only matching sub-string

    df = filter(val, clicks)

    if val == '':

        return df.to_dict('records'), []

    else:

        return df.to_dict('records'), [

                {

                    'if': {

                        'filter_query': '{{{}}} contains "{}"'.format(col, val),

                        'column_id': col

                    },

                    'color': 'tomato',

                    'font-weight':'bold',

                } for col in df.columns

            ]