如何在单词之间只允许 3 种类型的字符?
How to allow only 3 types of characters between words?
我有一组允许的字符:
撇号`
空 space
破折号-
我正在努力构建一个正则表达式:
一个。每个单词之间只允许出现一次允许的字符(允许任意数量的单词)
E.g.
text-text --> VALID
text text --> VALID
text`text --> VALID
b。允许允许的字符组合,但不能一个接一个
E.g.
text-text`text --> VALID
text text-text --> VALID
text`text text --> VALID
text``text text --> INVALID
text`text text --> INVALID
text`text -text --> INVALID
c。不允许以空 space
撇号 ` 或破折号 -
开头,也不允许以撇号 ` 或破折号 -
结尾,但是可以以 [emptyspace]
结尾
E.g.
text[emptyspace] --> VALID
[emptyspace]text --> INVALID
`text --> INVALID
text` --> INVALID
-text --> INVALID
text- --> INVALID
d。完全不允许使用特殊字符
e。完全不允许输入数字
这是我目前所拥有的:https://regex101.com/r/9i3vq2/5
您可以使用
^[a-zA-Z]+(?:[ `-][a-zA-Z]+)* ?$
详情
^
- 字符串开头
[a-zA-Z]+
- 1+ 个 ASCII 字母
(?:[ `-][a-zA-Z]+)*
- 0 次或多次重复
[ `-]
- space、反引号或 -
[a-zA-Z]+
- 1+ 个 ASCII 字母
?
- 一个可选的 space
$
- 字符串结尾。
我会简化 Wiktor 对下一个正则表达式的回答:
^[a-zA-Z]+([ `-][a-zA-Z]+)* ?$
我有一组允许的字符:
撇号`
空 space
破折号
-
我正在努力构建一个正则表达式:
一个。每个单词之间只允许出现一次允许的字符(允许任意数量的单词)
E.g.
text-text --> VALID
text text --> VALID
text`text --> VALID
b。允许允许的字符组合,但不能一个接一个
E.g.
text-text`text --> VALID
text text-text --> VALID
text`text text --> VALID
text``text text --> INVALID
text`text text --> INVALID
text`text -text --> INVALID
c。不允许以空 space 撇号 ` 或破折号
-
开头,也不允许以撇号 ` 或破折号 -
结尾,但是可以以 [emptyspace]
E.g.
text[emptyspace] --> VALID
[emptyspace]text --> INVALID
`text --> INVALID
text` --> INVALID
-text --> INVALID
text- --> INVALID
d。完全不允许使用特殊字符
e。完全不允许输入数字
这是我目前所拥有的:https://regex101.com/r/9i3vq2/5
您可以使用
^[a-zA-Z]+(?:[ `-][a-zA-Z]+)* ?$
详情
^
- 字符串开头[a-zA-Z]+
- 1+ 个 ASCII 字母(?:[ `-][a-zA-Z]+)*
- 0 次或多次重复[ `-]
- space、反引号或-
[a-zA-Z]+
- 1+ 个 ASCII 字母
?
- 一个可选的 space$
- 字符串结尾。
我会简化 Wiktor 对下一个正则表达式的回答:
^[a-zA-Z]+([ `-][a-zA-Z]+)* ?$