您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

正则表达式仅接受字母和空格,并且在字符串的开头和结尾不允许使用空格

正则表达式仅接受字母和空格,并且在字符串的开头和结尾不允许使用空格

对我而言,唯一可行的方法是:

^\p{L}+(?: \p{L}+)*$

在字符串的开头,必须至少有一个字母。(我用[a-zA-Z]Unicode代码属性替换了letter\p{L})。然后可以有一个空格,后跟至少一个字母,此部分可以重复。

\p{L}:来自任何语言的任何形式的信件。见regular-expressions.info

表达式中的问题^(?!\s*$)是,如果 只有空格,则超前操作将失败。如果要禁止前导空格,只需删除lookahead ==>中字符串锚的末尾^(?!\s)[-a-zA-Z ]*$。但这仍然允许字符串以空格结尾。为避免这种情况,请回头看字符串的结尾^(?!\s)[-a-zA-Z ]*(?<!\s)$。但我认为对于此任务,无需四处看看。

其他 2022/1/1 18:16:24 有635人围观

撰写回答


你尚未登录,登录后可以

和开发者交流问题的细节

关注并接收问题和回答的更新提醒

参与内容的编辑和改进,让解决方法与时俱进

请先登录

推荐问题


联系我
置顶