用于匹配名字后跟没有 space 的正则表达式
RegEx for matching first names followed by no space
我想匹配首字母大写后跟其他字母字符但没有白色 space 的名字,因此本质上是一个名字,例如:Kevin。
我有以下尝试似乎不起作用:
pattern = "([A-Z]\w+)(^\s)"
您可以简单地用一个结束 $
字符绑定您的表达式,这就足够了:
([A-Z][a-z]+)$
如果你想增加更多的边界,你也可以用一个开始绑定它 ^
char:
^([A-Z][a-z]+)$
如果需要,您也可以删除捕获组,它仍然会匹配。
[A-Z][a-z]+$
正则表达式
您可以 modify/change 在 regex101.com 中表达您的表情。
正则表达式电路
您可以在 jex.im 中可视化您的表情:
JavaScript 演示
const regex = /([A-Z][a-z]+)$/gm;
const str = `Kevin`;
const subst = ``;
// The substituted value will be contained in the result variable
const result = str.replace(regex, subst);
console.log('Substitution result: ', result);
我会使用 Emma 使用的 ([A-Z][a-z]+)$
的变体。
此 RegEx 将获取每个条目的名字,即使条目只有名字也能正常工作。
名称将以换行符分隔。
编辑:已更新以包含首字母大写字母后的任何单词字符。
像这样消极地展望未来:
([A-Z]\w+\b(?!\s))
在上面的示例中,\b
在末尾查找单词边界,如果 (?!\s)
找到 space,则正则表达式将失败。这个和接受的答案之间的主要区别在于它也会选择换行符并在设置 multi-line 标志时失败。
一如既往,这取决于您的用例。
工作示例:
const matchName = /([A-Z]\w+\b(?!\s))/
console.log(matchName.test("kevin")) // false
console.log(matchName.test("Kevin")) // true
console.log(matchName.test("Kevin ")) // false
console.log(matchName.test("KeVin")) // true
console.log(matchName.test("Kevin\n")) // false
我想匹配首字母大写后跟其他字母字符但没有白色 space 的名字,因此本质上是一个名字,例如:Kevin。
我有以下尝试似乎不起作用:
pattern = "([A-Z]\w+)(^\s)"
您可以简单地用一个结束 $
字符绑定您的表达式,这就足够了:
([A-Z][a-z]+)$
如果你想增加更多的边界,你也可以用一个开始绑定它 ^
char:
^([A-Z][a-z]+)$
如果需要,您也可以删除捕获组,它仍然会匹配。
[A-Z][a-z]+$
正则表达式
您可以 modify/change 在 regex101.com 中表达您的表情。
正则表达式电路
您可以在 jex.im 中可视化您的表情:
JavaScript 演示
const regex = /([A-Z][a-z]+)$/gm;
const str = `Kevin`;
const subst = ``;
// The substituted value will be contained in the result variable
const result = str.replace(regex, subst);
console.log('Substitution result: ', result);
我会使用 Emma 使用的 ([A-Z][a-z]+)$
的变体。
此 RegEx 将获取每个条目的名字,即使条目只有名字也能正常工作。
名称将以换行符分隔。
编辑:已更新以包含首字母大写字母后的任何单词字符。
像这样消极地展望未来:
([A-Z]\w+\b(?!\s))
在上面的示例中,\b
在末尾查找单词边界,如果 (?!\s)
找到 space,则正则表达式将失败。这个和接受的答案之间的主要区别在于它也会选择换行符并在设置 multi-line 标志时失败。
一如既往,这取决于您的用例。
工作示例:
const matchName = /([A-Z]\w+\b(?!\s))/
console.log(matchName.test("kevin")) // false
console.log(matchName.test("Kevin")) // true
console.log(matchName.test("Kevin ")) // false
console.log(matchName.test("KeVin")) // true
console.log(matchName.test("Kevin\n")) // false