英文:
Is there a Regex that allows alphabets and max 3 characters (space, period, comma) after an alphabet or some alphabets?
问题
以下是您要求的内容的翻译:
"我知道有人以前可能已经尝试回答这个问题,但我无法在任何地方找到它。
我想编写一个正则表达式,必须以某些字母开头,它只允许字母和3个特殊字符(逗号、句号、空格)。
但问题是,它只允许字母/字母后出现这些字符的一次。
所以,例如,
- "John,. "
- "John .,"
- "John ."
- "John ,"
- "John "
- "John,. Joe, ."
这些是可接受的。
但是,
- "John,.. " // 有2个句号
- "John.,." // 有2个句号
- "John,.,.,. " // 句号和逗号出现多次
- ",. John" // 以一个字符开头
- "John , ." // 有2个空格
这些是不可接受的。
我尝试了一堆正则表达式,但没有一个可以确保在一些文本之后出现每个字符一次。
这是我迄今为止得到的正则表达式,但它不允许"John., "或"John,.John":
/^[a-zA-Z]+([,.\s](?![,.\s]))?[a-zA-Z\s]*$"
英文:
I know someone may have tried answering this in the past, but I couldn't find it anywhere.
I want to write a regex that must start with some alphabet/alphabets and it only allows alphabets and 3 special characters (comma, period, space).
But the catch is, it should only allow one occurrence of these characters after the alphabet/alphabets.
So for example,
- "John,. "
- "John .,"
- "John ."
- "John ,"
- "John "
- "John,. Joe, ."
These are acceptable.
But,
- "John,.." // has 2 periods
- "John.,." // has 2 periods
- "John,.,.,. " // has more than one occurrence of period and comma
- ",. John" // starts with a character
- "John , ." // has 2 spaces
These are not acceptable.
I've tried a bunch of regex expressions but none of them can ensure 1 occurence of each character after some text.
This is the regex I've gotten so far but it doesn't allow "John.," or "John,.John"
/^[a-zA-Z]+([,.\s](?![,.\s]))?[a-zA-Z\s]*$
答案1
得分: 4
^(?:[a-zA-Z]+(?:([., ])(?![., ]*)){0,3})+$
英文:
You may use this regex:
^(?:[a-zA-Z]+(?:([., ])(?![., ]*)){0,3})+$
RegEx Details:
^
: Start(?:
: Start non-capture group #1[a-zA-Z]+
:(?:
: Start non-capture group #2([., ])
: Match,
or.
or space in capture group #1(?![., ]*\1)
: Negative lookahead to assert that we don't have a repeat of the character matched in capture group #1
){0,3}
: End non-capture group #2. Repeat this group 0 to 3 times
)+
: End non-capture group #1. Repeat this group 1+ times$
: End
通过集体智慧和协作来改善编程学习和解决问题的方式。致力于成为全球开发者共同参与的知识库,让每个人都能够通过互相帮助和分享经验来进步。
评论