gpt4 book ai didi

java - 使用正则表达式验证字符串是否以指定字符开头或结尾

转载 作者:行者123 更新时间:2023-12-01 19:38:03 27 4
gpt4 key购买 nike

我需要验证输入字符串,以便仅允许在开头或结尾处包含字符“E”、“W”、“N”、“S”(或其小写对应项)字符串(不是两者)。该字符后面将跟随数字。该字符不能位于数字之间。另外,如果它出现在开头,那么它就不能出现在结尾(反之亦然)。

我能够想出这个正则表达式:[wWeEnNsS]{0,1}\\d+,它只检查开头的字符。但是我如何确保它出现在开头则不能出现在结尾?

以下是有效输入的示例:

w234,
W234,
E234,
234w,
234

无效输入:

w234w,
2w34,
ww234,
we234,
w234e,
w

最佳答案

您可以使用不区分大小写的模式匹配进行替换:

^[ewns][0-9]+$|^\d+[ewns]?$

在Java中

String regex = "^(?:[ewns]?[0-9]+|\\d+[ewns])$";
  • ^[ewns][0-9]+$ 字符串开头,匹配列出的字符中的 1 个和字符串结尾
  • | 或者
  • ^\d+[ewns]?$ 字符串开头,可选择匹配列出的字符中的 1 个和字符串结尾

Regex demo | Java demo

关于java - 使用正则表达式验证字符串是否以指定字符开头或结尾,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56661847/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com