哪一个正则表达式可以让我只匹配第一个和最后一个字母

本文关键字:第一个 最后一个 正则表达式 哪一个 | 更新日期: 2023-09-27 18:14:58

示例:

i General Biology i
i General Biology
General Biology i

我需要捕捉任何以单个字母或数字开头、以字母或数字结尾、或两者都以单个字母和数字开头和结尾的短语,以便我可以将数据预解析为:

General Biology

我在Rubular上试过很多例子,但似乎都想不通。我使用了文字匹配组来获取这些字符,但我不想要匹配组本身,我只希望正则表达式只捕获这两个字母。

哪一个正则表达式可以让我只匹配第一个和最后一个字母

您可以使用以下方法来实现这一点:

String result = Regex.Replace(input, @"(?i)^[a-z0-9]'s+|'s+[a-z0-9]$", "");

解释

这将删除字符串开头/末尾的一个字母/数字,该字母/数字后面或前面有空格。

 (?i)        #  set flags for this block (case-insensitive)
 ^           #  the beginning of the string
 [a-z0-9]    #  any character of: 'a' to 'z', '0' to '9'
 's+         #  whitespace ('n, 'r, 't, 'f, and " ") (1 or more times)
|            # OR
 's+         #  whitespace ('n, 'r, 't, 'f, and " ") (1 or more times)
 [a-z0-9]    #  any character of: 'a' to 'z', '0' to '9'
 $           #  before an optional 'n, and the end of the string

工作演示

相关文章: