我似乎无法构建这个简单的正则表达式
I cant seem to build this simple regex expression
你好,我想创建一个识别特定模式的正则表达式(文章标题中的性别字符串)。但是我无法想出一个解决方案,虽然它应该相当简单。
我想识别其中一个字母 m w t
,后跟字符 |
,然后再识别字母 m w t
。
我希望模式匹配这些属性之间的无限变化。
因此 应该 匹配的示例模式是:
m|w
m|w|m
m|w|t|m|m
m|w..................................|t
应该 NOT 匹配的模式例如是:
t
m|
|w|
m|w|
到目前为止我想出的正则表达式是 ((\|)?(m|w|t){1}[ ]*(\|))+
但这当然不适合我的需要。我不确定如何完成此操作。
您可以使用重复组 1+ 次
^[mwt](?:\|[mwt])+$
^
字符串开头
[mwt]
匹配 m
w
t
之一
(?:\|[mwt])+
重复 1+ 次匹配 |
并再次匹配 m
w
t
$
字符串结束
如果没有锚点,您可以使用单词边界开始匹配 \b
以防止部分匹配,并在模式末尾的右侧断言空白边界 (?!\S)
如果你想使用多个分隔符,你可以使用一个字符 class [|\/]
如果模式分隔符也是 /
[=,你只需要转义正斜杠29=]
\b[mwt] *(?:[|\/] *[mwt])+(?!\S)
根据您的描述,您需要此正则表达式:[mwt](\|[mwt])+
。其中一个字母,后跟一对或多对 |
-letter
。
你好,我想创建一个识别特定模式的正则表达式(文章标题中的性别字符串)。但是我无法想出一个解决方案,虽然它应该相当简单。
我想识别其中一个字母 m w t
,后跟字符 |
,然后再识别字母 m w t
。
我希望模式匹配这些属性之间的无限变化。
因此 应该 匹配的示例模式是:
m|w
m|w|m
m|w|t|m|m
m|w..................................|t
应该 NOT 匹配的模式例如是:
t
m|
|w|
m|w|
到目前为止我想出的正则表达式是 ((\|)?(m|w|t){1}[ ]*(\|))+
但这当然不适合我的需要。我不确定如何完成此操作。
您可以使用重复组 1+ 次
^[mwt](?:\|[mwt])+$
^
字符串开头[mwt]
匹配m
w
t
之一
(?:\|[mwt])+
重复 1+ 次匹配|
并再次匹配m
w
t
$
字符串结束
如果没有锚点,您可以使用单词边界开始匹配 \b
以防止部分匹配,并在模式末尾的右侧断言空白边界 (?!\S)
如果你想使用多个分隔符,你可以使用一个字符 class [|\/]
如果模式分隔符也是 /
[=,你只需要转义正斜杠29=]
\b[mwt] *(?:[|\/] *[mwt])+(?!\S)
根据您的描述,您需要此正则表达式:[mwt](\|[mwt])+
。其中一个字母,后跟一对或多对 |
-letter
。