将这两者与正则表达式匹配,而不仅仅是

时间:2016-09-07 15:52:54

标签: regex

我正在通过一堆名字查看sql表,我想获得所有使用的不同标题的列表。例如SNR,MRS,MR,JNR等

有时会有一个可能有2个标题的条目,例如:MR NAME NAME JNR。我想要这两个标题'MR'& 'JNR'

我认为这样做的好方法是使用正则表达式并找到任何包含2或3个字符的名称。前面的标题后面会有一个空格,而末尾的标题前面会有一个标题。所以我有:

/(^[A-Z]{2,3})\s|\s(^[A-Z]{2,3}$)/

a regex101 example here

正如你所看到的,我使用'匹配A或B'的东西。如果我在开头或结尾处给它起一个带有标题的名字,我最终会得到我想要的东西,但我不知道如何告诉它同时获得两者。即带有2个标题的字符串只会给我一个匹配。

如何同时获得两者?

1 个答案:

答案 0 :(得分:1)

您可以只匹配其中的任何字符,而不是“OR”:

(^[A-Z]{3})\s.*\s([A-Z]{3}$)