不以 and/or 开头的匹配字符串的正则表达式以点结尾

RegEx for match strings that doesn't start and/or end with a dot

我正在尝试编写一个正则表达式来获取每个不以 and/or 开头且以点 (.) 结尾的字符串。 Here 是我正在处理的示例,但它不起作用,因为没有匹配项。

// valid match would be
Alison
Alizon
Amada
Amanda
Ami

// not valid match wold be
Alison. // dot at end
Alizon. // dot at end
.Amada // dot at beggining
Amanda. // dot at end
Ami. // dot at end
.Ami. // dot at beggining and end

我也试过其他方法:^".*[^.]$ 但都不行。

有什么可以帮我的吗?

注意: 我将在 MySQL 查询中使用它,例如:SELECT * FROM reviews WHERE description REGEXP 'here_goes_the_RegEx'

你可以在没有正则表达式的情况下做到这一点:

SELECT * FROM reviews WHERE description NOT LIKE '.%' AND description NOT LIKE '%.'

根据逻辑将AND替换为OR。

试试这个正则表达式:

(^((?!.).)*[a-z]+[\w]+((?!.).)*$)

有关更多信息,请参阅此 Link